Esquemas:

ACCOUNT_USAGE

Exibição TABLE_PRUNING_HISTORY

Esta exibição Account Usage pode ser usada para determinar a eficiência da remoção de todas as tabelas e para entender como a ordenação padrão (natural) de dados de uma tabela afeta a remoção.

É possível comparar o número de partições removidas (PARTITIONS_PRUNED) com o número total de partições escaneadas e removidas (PARTITIONS_SCANNED + PARTITIONS_PRUNED).

Cada linha nesta exibição representa o histórico de remoção para uma tabela específica dentro de um determinado intervalo. Os dados são agregados por intervalo e incluem informações sobre o número de verificações, partições verificadas, partições removidas, linhas verificadas e linhas removidas.

Você também pode usar esta exibição para comparar os efeitos da poda antes e depois de habilitar o Clustering automático e a otimização de pesquisa para uma tabela.

Consulte também Exibição TABLE_QUERY_PRUNING_HISTORY e Exibição COLUMN_QUERY_PRUNING_HISTORY.

Colunas

Nome da coluna

Tipo de dados

Descrição

START_TIME

TIMESTAMP_LTZ

Início do intervalo de tempo (na marca da hora) durante o qual as consultas foram executadas e concluídas.

END_TIME

TIMESTAMP_LTZ

Fim do intervalo de tempo (na marca da hora) durante o qual as consultas foram executadas e concluídas.

TABLE_ID

NUMBER

Identificador interno/gerado pelo sistema para a tabela que foi consultada.

TABLE_NAME

VARCHAR

Nome da tabela que foi consultada.

SCHEMA_ID

NUMBER

identificador interno/gerado pelo sistema para o esquema com a tabela que foi consultada.

SCHEMA_NAME

VARCHAR

Nome do esquema com a tabela consultada.

DATABASE_ID

NUMBER

Identificador interno/gerado pelo sistema para o banco de dados com a tabela consultada.

DATABASE_NAME

VARCHAR

Nome do banco de dados com a tabela consultada.

NUM_SCANS

NUMBER

Número de operações de varredura de todas as consultas (incluindo instruções SELECT e instruções de DML) na tabela durante a janela de START_TIME e END_TIME. Observe que uma determinada consulta pode resultar em várias operações de verificação na mesma tabela.

PARTITIONS_SCANNED

NUMBER

Número de partições verificadas durante as operações de verificação descritas em NUM_SCANS.

PARTITIONS_PRUNED

NUMBER

Número de partições removidas para as consultas descritas em NUM_SCANS. Essas partições foram eliminadas durante o processamento da consulta, melhorando a eficiência da consulta.

ROWS_SCANNED

NUMBER

Número de linhas escaneadas durante as operações de escaneamento descritas em NUM_SCANS.

ROWS_PRUNED

NUMBER

Número de linhas removidas para as consultas descritas em NUM_SCANS. Essas linhas foram removidas durante o processamento da consulta, melhorando a eficiência da consulta.

Notas de uso

  • A latência da visualização pode ser de até 6 horas.

  • Esta exibição não inclui informações de remoção para tabelas híbridas.

  • Essa visualização retém dados para as 1.000 verificações de tabela de execução mais longa por consulta. Somente consultas extremamente complexas excedem esse número de verificações, portanto, dados raramente são omitidos.

Exemplos

Liste as cinco principais tabelas que tiveram a pior eficiência de remoção nos últimos sete dias:

SELECT
    table_id,
    ANY_VALUE(table_name) AS table_name,
    SUM(num_scans) AS total_num_scans,
    SUM(partitions_scanned) AS total_partitions_scanned,
    SUM(partitions_pruned) AS total_partitions_pruned,
    SUM(rows_scanned) AS total_rows_scanned,
    SUM(rows_pruned) AS total_rows_pruned
  FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_PRUNING_HISTORY
  WHERE start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
  GROUP BY table_id
  ORDER BY
    total_partitions_pruned / GREATEST(total_partitions_scanned + total_partitions_pruned, 1),
    total_partitions_scanned DESC
  LIMIT 5;
Copy
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
| TABLE_ID | TABLE_NAME     | TOTAL_NUM_SCANS | TOTAL_PARTITIONS_SCANNED | TOTAL_PARTITIONS_PRUNED | TOTAL_ROWS_SCANNED | TOTAL_ROWS_PRUNED |
|----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------|
|   308226 | SENSOR_DATA_TS |              11 |                       21 |                       1 |           52500000 |           2500000 |
|   185364 | MATCH          |              16 |                       14 |                       2 |             240968 |             34424 |
|   209932 | ORDER_HEADER   |               2 |                      300 |                      56 |          421051748 |          75350790 |
|   209922 | K7_T1          |             261 |                      261 |                      52 |              30421 |              3272 |
|   338948 | SENSOR_DATA_TS |               9 |                       15 |                       3 |           38880000 |           8035200 |
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+

O exemplo acima é usa GREATEST para evitar a divisão por zero quando a soma do número de partições escaneadas e do número de partições removidas é zero.