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 :

SYSTEM$CLUSTERING_INFORMATION

Syntaxe

SYSTEM$CLUSTERING_DEPTH( '<table_name>' , '( <col1> [ , <col2> ... ] )' [ , '<predicate>' ] )

Arguments

nom_table

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.

prédicat

Clause qui filtre la plage de valeurs dans les colonnes sur lesquelles la profondeur de clustering doit être calculée. Notez que prédicat 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 prédicat 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                                            |
+----------------------------------------------------+