Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$CLUSTERING_DEPTH

Berechnet die durchschnittliche Tiefe der Tabelle anhand der angegebenen Spalten (oder der für die Tabelle definierten Gruppierungsschlüssel). Die durchschnittliche Tiefe einer ausgefüllten Tabelle (d. h. einer Tabelle mit Daten) beträgt immer 1 oder mehr. Je kleiner die durchschnittliche Tiefe ist, desto besser ist die Tabelle in Bezug auf die angegebenen Spalten geclustert.

Weitere Informationen zu Mikropartitionen und Gruppierungsschlüsseln finden Sie unter Grundlegendes zu Tabellenstrukturen in Snowflake.

Siehe auch:

SYSTEM$CLUSTERING_INFORMATION

Syntax

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

Argumente

table_name

Tabelle, für die die Clustering-Tiefe berechnet werden soll.

col1 [ , col2 ... ]

Spalten in der Tabelle, die zur Berechnung der Clustering-Tiefe verwendet werden:

  • Für eine Tabelle ohne Gruppierungsschlüssel ist dieses Argument erforderlich. Wenn das Argument nicht angegeben wird, wird ein Fehler zurückgegeben.

  • Bei einer Tabelle mit Gruppierungsschlüssel ist dieses Argument optional. Wenn das Argument weggelassen wird, nutzt Snowflake zur Berechnung der Tiefe den definierten Gruppierungsschlüssel.

Bemerkung

Mit diesem Argument können Sie die Tiefe für beliebige Spalten in der Tabelle berechnen, unabhängig von dem für die Tabelle definierten Gruppierungsschlüssel.

predicate

Klausel, die den Wertebereich in den Spalten filtert, für die die Clustering-Tiefe berechnet werden soll. Beachten Sie, dass das predicate am Anfang der Klausel kein WHERE-Schlüsselwort aufweist.

Nutzungshinweise

  • Alle Argumente sind Zeichenfolgen (d. h. sie müssen in einfache Anführungszeichen gesetzt werden).

  • Wenn predicate eine Zeichenfolge enthält, muss diese Zeichenfolge in einfache Anführungszeichen gesetzt werden, die wiederum mit einfachen Anführungszeichen als Escape-Zeichen versehen werden müssen. Beispiel:

    SYSTEM$CLUSTERING_DEPTH( ... , 'col1 = 100 and col2 = ''A''' )

Beispiele

Berechnen der Clustering-Tiefe für eine Tabelle mit dem für die Tabelle definierten Gruppierungsschlüssel:

SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS');

+----------------------------------------+
| SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS') |
|----------------------------------------+
| 2.4865                                 |
+----------------------------------------+
Copy

Berechnen der Clustering-Tiefe für eine Tabelle mithilfe von zwei Spalten in der Tabelle:

SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)');

+----------------------------------------------------+
| SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)') |
+----------------------------------------------------+
| 23.1351                                            |
+----------------------------------------------------+
Copy

Wie im vorherigen Beispiel, jedoch mit einem Prädikat auf einer der Spalten:

SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)', 'C2 = 25');

+----------------------------------------------------+
| SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)') |
+----------------------------------------------------+
| 11.2452                                            |
+----------------------------------------------------+
Copy