Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$CLUSTERING_DEPTH

Calcula a profundidade média da tabela de acordo com as colunas especificadas (ou a chave de clustering definida para a tabela). A profundidade média de uma tabela preenchida (ou seja, uma tabela contendo dados) é sempre 1 ou mais. Quanto menor a profundidade média, mais bem clusterizada é a tabela em relação às colunas especificadas.

Para obter mais informações sobre micropartições e chaves de clustering, consulte Explicação das estruturas de tabela do Snowflake.

Consulte também:

SYSTEM$CLUSTERING_INFORMATION

Sintaxe

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

Argumentos

table_name

Tabela para a qual você deseja calcular a profundidade de clustering.

col1 [ , col2 ... ]

Coluna(s) na tabela utilizada(s) para calcular a profundidade do clustering:

  • Para uma tabela sem chave de clustering, este argumento é necessário. Se este argumento for omitido, um erro é devolvido.

  • Para uma tabela com uma chave de clustering, este argumento é opcional; se o argumento for omitido, o Snowflake usa a chave de clustering definida para calcular a profundidade.

Nota

Você pode usar este argumento para calcular a profundidade de qualquer coluna da tabela, independentemente da chave de clustering definida para a tabela.

predicate

Cláusula que filtra o intervalo de valores nas colunas nas quais se calcula a profundidade de clustering. Observe que predicate não utiliza uma palavra-chave WHERE no início da cláusula.

Notas de uso

  • Todos os argumentos são cadeias de caracteres (ou seja, devem ser colocados entre aspas simples).

  • Se predicate contém uma cadeia de caracteres, a cadeia de caracteres deve ser delimitada por aspas simples, que então devem ser escapadas usando aspas simples. Por exemplo:

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

Exemplos

Calcular a profundidade de clustering para uma tabela usando a chave de clustering definida para a tabela:

SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS');

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

Calcular a profundidade de clustering para uma tabela usando duas colunas na tabela:

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

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

O mesmo que o exemplo anterior, mas com um predicado em uma das colunas:

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

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