Optimisation des performances des requêtes¶
Vous pouvez optimiser les performances des requêtes Snowflake des manières suivantes :
Service d’optimisation de la recherche
Accélération de requête.
La création d’une ou plusieurs vues matérialisées (en cluster ou non).
Clustering d’une table.
Chacune de ces méthodes d’optimisation présente des avantages différents, comme le montre le tableau suivant :
Fonctionnalité |
Types de requêtes pris en charge |
Remarques |
|---|---|---|
Le service d’optimisation des recherches peut améliorer les performances de ces types de recherches pour les types de données pris en charge. |
||
Requêtes avec filtres ou agrégation. Si la requête comprend LIMIT, elle doit également comprendre ORDER BY.
Les filtres doivent être très sélectifs et la clause ORDER BY doit avoir une faible cardinalité.
L’accélération des requêtes fonctionne bien avec les analyses ad hoc et les requêtes dont le volume de données est imprévisible,
et les requêtes avec de grandes analyses et des filtres sélectifs.
|
L’accélération des requêtes et l’optimisation de la recherche sont complémentaires. Les deux peuvent accélérer la même requête. Voir Compatibilité avec l’accélération des requêtes. |
|
|
Vous pouvez également utiliser les vues matérialisées pour définir différentes clés de clustering sur la même table source ou un sous-ensemble de cette table, ou pour stocker des données JSON ou VARIANT aplaties ou des données de variantes afin qu’elles ne doivent être aplaties qu’une seule fois. Les vues matérialisées améliorent les performances uniquement pour le sous-ensemble de lignes et de colonnes inclus dans la vue matérialisée. |
|
|
Une table peut être mise en cluster sur une seule clé uniquement, qui peut contenir une ou plusieurs colonnes ou expressions. |
La table suivante montre lesquelles de ces optimisations ont des coûts de stockage ou de calcul :
Optimisation |
Coût de stockage |
Coût de calcul |
|---|---|---|
Service d’optimisation de la recherche |
✔ |
✔ |
Service d’accélération des requêtes |
✔ |
|
Vue matérialisée |
✔ |
✔ |
Clustering de la table |
✔ [1] |
✔ |
Compatibilité avec l’accélération des requêtes¶
L’optimisation de la recherche et l”accélération des requêtes peuvent fonctionner ensemble pour optimiser les performances des requêtes. Tout d’abord, l’optimisation de la recherche permet de supprimer les micro-partitions qui ne sont pas nécessaires pour une requête. Ensuite, pour les requêtes éligibles, l’accélération des requêtes peut décharger une partie du reste du travail sur des ressources de calcul partagées fournies par le service.
Les performances des requêtes accélérées par les deux services varient en fonction de la charge de travail et des ressources disponibles.