- Catégories :
Fonctions système (Informations système)
SYSTEM$CLUSTERING_DEPTH¶
Calcule la profondeur moyenne de la table en fonction des colonnes spécifiées (ou de la clé de clustering définie pour la table). La profondeur moyenne d’une table remplie (c’est-à-dire une table contenant des données) est toujours égale à 1
ou plus. Plus la profondeur moyenne est faible, mieux la table est groupée en ce qui concerne les colonnes spécifiées.
Pour plus d’informations sur les micro-partitions et les clés de clustering, voir Fonctionnement des structures de table dans Snowflake.
- Voir aussi :
Syntaxe¶
SYSTEM$CLUSTERING_DEPTH( '<table_name>' , '( <col1> [ , <col2> ... ] )' [ , '<predicate>' ] )
Arguments¶
table_name
Tableau pour lequel vous souhaitez calculer la profondeur de clustering.
col1 [ , col2 ... ]
Colonne(s) du tableau utilisée(s) pour calculer la profondeur de clustering :
Pour une table sans clé de clustering, cet argument est requis. Si cet argument est omis, une erreur est renvoyée.
Pour une table avec une clé de clustering, cet argument est facultatif. Si l’argument est omis, Snowflake utilise la clé de clustering définie pour calculer la profondeur.
Note
Vous pouvez utiliser cet argument pour calculer la profondeur de toutes les colonnes de la table, quelle que soit la clé de clustering définie pour la table.
predicate
Clause qui filtre la plage de valeurs dans les colonnes sur lesquelles la profondeur de clustering doit être calculée. Notez que
predicate
n’utilise pas de mot clé WHERE au début de la clause.
Notes sur l’utilisation¶
Tous les arguments sont des chaînes de caractères ; ils doivent donc être compris entre des guillemets simples.
Si
predicate
contient une chaîne, celle-ci doit être placée entre guillemets simples, qui doivent ensuite être échappés à l’aide de guillemets simples. Par exemple :SYSTEM$CLUSTERING_DEPTH( ... , 'col1 = 100 and col2 = ''A''' )
Exemples¶
Calculez la profondeur de clustering d’une table à l’aide de la clé de clustering définie pour la table :
SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS'); +----------------------------------------+ | SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS') | |----------------------------------------+ | 2.4865 | +----------------------------------------+
Calculez la profondeur de clustering d’une table à l’aide de deux colonnes dans la table :
SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)'); +----------------------------------------------------+ | SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)') | +----------------------------------------------------+ | 23.1351 | +----------------------------------------------------+
Identique à l’exemple précédent, mais avec un prédicat sur l’une des colonnes :
SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)', 'C2 = 25'); +----------------------------------------------------+ | SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)') | +----------------------------------------------------+ | 11.2452 | +----------------------------------------------------+