- Esquemas:
Exibição TABLE_QUERY_PRUNING_HISTORY¶
Use esta visualização do uso da conta para ter uma melhor compreensão dos padrões de acesso aos dados durante a execução da consulta.
É possível usar essa visualização em combinação com a Exibição COLUMN_QUERY_PRUNING_HISTORY. Por exemplo, você pode identificar o acesso às tabelas de destino usando a visualização TABLE_QUERY_PRUNING_HISTORY, depois identifique as colunas usadas com frequência nessas tabelas usando a visualização COLUMN_QUERY_PRUNING_HISTORY.
Especificamente, essas visualizações podem ajudar você a fazer uma escolha mais informada para chaves de clustering.
Cada linha nesta visualização representa o histórico de remoção de consulta 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 consultas executadas, partições verificadas, partições removidas, linhas verificadas, linhas removidas e linhas correspondentes.
Consulte também Exibição TABLE_PRUNING_HISTORY e Remoção em consultas.
Colunas¶
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
INTERVAL_START_TIME |
TIMESTAMP_LTZ |
Início do intervalo de tempo (na marca de hora) durante o qual as consultas foram executadas. |
INTERVAL_END_TIME |
TIMESTAMP_LTZ |
Fim do intervalo de tempo (na marca de uma hora) durante o qual as consultas foram executadas. |
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. |
WAREHOUSE_ID |
NUMBER |
Identificador interno/gerado pelo sistema do warehouse que foi utilizado para executar as consultas. |
WAREHOUSE_NAME |
VARCHAR |
Nome do warehouse que executou as consultas. |
QUERY_HASH |
VARCHAR |
O valor de hash calculado com base no texto canônico SQL. |
QUERY_PARAMETERIZED_HASH |
VARCHAR |
O valor de hash calculado com base na consulta parametrizada. |
NUM_QUERIES |
NUMBER |
Número de consultas executadas nesse intervalo com esse valor específico de QUERY_HASH, usando esse warehouse, acessando essa tabela. |
AGGREGATE_QUERY_ELAPSED_TIME |
NUMBER |
Tempo total decorrido (em milissegundos) para consultas definidas por NUM_QUERIES. Esse total inclui fila de espera e outros tempos não associados à compilação e execução. |
AGGREGATE_QUERY_COMPILATION_TIME |
NUMBER |
Tempo total de compilação (em milissegundos) para consultas definidas por NUM_QUERIES. |
AGGREGATE_QUERY_EXECUTION_TIME |
NUMBER |
Tempo total de execução (em milissegundos) para consultas definidas por NUM_QUERIES. |
PARTITIONS_SCANNED |
NUMBER |
Número de partições verificadas nessa tabela para consultas definidas por NUM_QUERIES. |
PARTITIONS_PRUNED |
NUMBER |
Número de partições removidas nessa tabela para consultas definidas por NUM_QUERIES. Essas partições foram eliminadas durante o processamento da consulta e não foram digitalizadas, melhorando a eficiência da consulta. |
ROWS_SCANNED |
NUMBER |
Número de linhas verificadas nessa tabela para consultas definidas por NUM_QUERIES. |
ROWS_PRUNED |
NUMBER |
Número de linhas removidas nessa tabela para consultas definidas por NUM_QUERIES. Essas linhas foram eliminadas durante o processamento da consulta e não foram digitalizadas, melhorando a eficiência da consulta. |
ROWS_MATCHED |
NUMBER |
Número de linhas que corresponderam aos filtros da cláusula WHERE durante a verificação dessa tabela para as consultas definidas por NUM_QUERIES. |
Notas de uso¶
A latência da visualização pode ser de até 4 horas.
Os dados ficam retidos por 1 dia.
Esta exibição não inclui informações de remoção para tabelas híbridas.
Para condições de filtragem complexas que não podem se beneficiar de uma otimização pushdown, as linhas podem não ser filtradas durante a operação de verificação de tabela, mesmo que não correspondam à condição de filtragem. Portanto, essas linhas são contadas no valor ROWS_MATCHED.
Usuários e funções que receberam a função de banco de dados USAGE_VIEWER podem acessar essa visualização. Para obter mais informações, consulte Funções de banco de dados SNOWFLAKE.
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¶
A primeira consulta é um exemplo funcional simples que retorna o histórico de remoção para consultas em uma tabela específica em uma data específica em que pelo menos uma linha foi removida. Cada linha no resultado pertence a uma janela específica de uma hora para consultas que foram concluídas na data especificada na cláusula WHERE (INTERVAL_START_TIME).
A tabela sensor_data_ts
nessa consulta contém 5.356.800 linhas de dados sintéticos de séries temporais. Exatamente metade das linhas na tabela (2.678.400) foram removidas para todas as consultas mostradas aqui. O número de linhas correspondentes varia para essas consultas.
SELECT interval_start_time, interval_end_time, table_id, table_name,
num_queries, query_hash, rows_scanned, rows_pruned, rows_matched
FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_QUERY_PRUNING_HISTORY
WHERE interval_start_time LIKE '2025-04-24%'
AND table_name='SENSOR_DATA_TS'
AND rows_pruned > 0
ORDER BY 1;
+-------------------------------+-------------------------------+----------+----------------+-------------+----------------------------------+--------------+-------------+--------------+
| INTERVAL_START_TIME | INTERVAL_END_TIME | TABLE_ID | TABLE_NAME | NUM_QUERIES | QUERY_HASH | ROWS_SCANNED | ROWS_PRUNED | ROWS_MATCHED |
|-------------------------------+-------------------------------+----------+----------------+-------------+----------------------------------+--------------+-------------+--------------|
| 2025-04-24 14:00:00.000 -0700 | 2025-04-24 15:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 833f4ec4ebbda62c7882e1839faec799 | 2678400 | 2678400 | 5 |
| 2025-04-24 14:00:00.000 -0700 | 2025-04-24 15:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 94d16d2fa0892247d27066e45b58d3e4 | 2678400 | 2678400 | 5 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 24e89f5c01209d7b395f56559f893dc8 | 2678400 | 2678400 | 2678400 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 71c9c6570ef849e66f83af0625b793a2 | 2678400 | 2678400 | 2678400 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | c75cb64d446c1ba222ac14ebd1923641 | 2678400 | 2678400 | 2678400 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 5a3784c59fc788804c903d96698dd969 | 2678400 | 2678400 | 5 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 069a076d4d6850e3d242fccf498c7c6d | 2678400 | 2678400 | 216642 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 4c9c5aacb7a61fc6858d107c5c46fb14 | 2678400 | 2678400 | 216642 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 3e509721380b262906c62c76107e46c9 | 2678400 | 2678400 | 2678400 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 9f7e607fe48faa18e332f65cde49f037 | 2678400 | 2678400 | 2678400 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | b4488d8a84ab18b00dd6b2fead4a4cb4 | 2678400 | 2678400 | 394106 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 | 652324 | SENSOR_DATA_TS | 1 | 157d775a79c5bae120fb5db9f7d8d027 | 2678400 | 2678400 | 216642 |
+-------------------------------+-------------------------------+----------+----------------+-------------+----------------------------------+--------------+-------------+--------------+
O exemplo a seguir calcula uma “taxa de remoção” para cada tabela para ajudar a determinar a eficiência de remoção para consultas executadas em um determinado warehouse em um determinado momento. A consulta também retorna o número de partições verificadas por consulta, o que ajuda você a entender o desempenho da consulta em relação ao volume de dados que precisam ser verificados.
Dados os resultados dessa consulta, os usuários podem concluir que, embora sensor_data_ts
seja acessado muito mais do que sensor_data1
, essas consultas normalmente levam menos tempo e examinam muito menos micropartições.
SELECT
SUM(total_execution_time) as sum_exec_time,
SUM(num_queries) as sum_num_queries,
SUM(partitions_pruned)/SUM(partitions_pruned+partitions_scanned) AS pruning_ratio,
SUM(partitions_scanned)/SUM(num_queries) AS partitions_scanned_per_query,
table_name,
schema_name,
database_name
FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_QUERY_PRUNING_HISTORY
WHERE interval_start_time > '2025-04-25 12:00:00.000 -0700'
AND warehouse_name = 'SENSORS_WH'
GROUP BY ALL
ORDER BY 1 DESC;
+---------------+-----------------+---------------+------------------------------+----------------+----------------+---------------+
| SUM_EXEC_TIME | SUM_NUM_QUERIES | PRUNING_RATIO | PARTITIONS_SCANNED_PER_QUERY | TABLE_NAME | SCHEMA_NAME | DATABASE_NAME |
|---------------+-----------------+---------------+------------------------------+----------------+----------------+---------------|
| 1938743 | 19283 | 0.230000 | 1800.000000 | SENSOR_DATA1 | SENSORS_SCHEMA | SENSORS_DB |
| 123732 | 39320 | 0.950000 | 12.000000 | SENSOR_DATA_TS | SENSORS_SCHEMA | SENSORS_DB |
+---------------+-----------------+---------------+------------------------------+----------------+----------------+---------------+