Esquemas:

ACCOUNT_USAGE

Exibição COLUMN_QUERY_PRUNING_HISTORY

Use essa visualização do uso da conta para obter uma melhor compreensão dos padrões de acesso aos dados durante a execução da consulta, incluindo alguns detalhes em nível de coluna, tais como o “tipo de acesso” e o as expressões de otimização de pesquisa candidatas potencialmente úteis.

É possível usar essa visualização em combinação com a Exibição TABLE_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.

Cada linha nessa visualização representa o histórico de remoção da consulta para uma coluna específica dentro de um determinado intervalo. Os dados são agregados por coluna, por tabela, por intervalo e incluem métricas como 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 da hora) durante o qual as consultas foram executadas e concluídas.

INTERVAL_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.

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.

COLUMN_ID

NUMBER

Identificador interno/gerado pelo sistema para a coluna acessada a partir da tabela que foi consultada.

COLUMN_NAME

VARCHAR

Nome da coluna acessada a partir da tabela consultada.

VARIANT_PATH

VARCHAR

Caminho para os dados semiestruturados acessados (se aplicável). NULL se a coluna acessada não tiver um tipo de dados semiestruturado.

ACCESS_TYPE

VARCHAR

Tipo de acesso realizado na coluna (condição WHERE ou JOIN).

NUM_QUERIES

NUMBER

Número de consultas executadas nesse intervalo com esse valor QUERY_HASH específico, usando esse warehouse, acessando essa coluna (e caminho variante , se aplicável) nessa tabela com esse tipo de acesso.

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.

SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS

ARRAY

Lista de expressões de otimização de pesquisa suportadas nesta coluna que poderiam acelerar 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.

  • 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.

  • A coluna ACCESS_TYPE contém um dos seguintes valores:

    • WHERE: a coluna é usada em uma condição de filtro na cláusula WHERE.

    • JOIN: a coluna é usada em uma condição para uma operação JOIN.

  • O comportamento de acesso mostrado nessa visualização reflete o plano de consulta real que foi executado, que pode ser diferente do texto de consulta original. Por exemplo, se uma cláusula HAVING não faz referência aos resultados agregados produzidos pela cláusula GROUP BY, ela pode ser otimizada e reescrita como uma cláusula WHERE, e o valor de ACCESS_TYPE será WHERE.

  • 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.

  • Atualmente, a coluna SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS sugere apenas os métodos de pesquisa EQUALITY e SUBSTRING.

  • 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.

Exemplo

Para um determinado dia, retorne o histórico de remoção em nível de coluna para consultas em uma tabela específica:

SELECT interval_start_time, table_name, column_name, access_type, num_queries,
    rows_scanned, rows_pruned, rows_matched,
    search_optimization_supported_expressions::VARCHAR as search_optim
  FROM SNOWFLAKE.ACCOUNT_USAGE.COLUMN_QUERY_PRUNING_HISTORY
  WHERE interval_start_time like '2025-04-24%' AND table_name='SENSOR_DATA_TS'
  ORDER BY 3, 1;
Copy
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+
| INTERVAL_START_TIME           | TABLE_NAME     | COLUMN_NAME | ACCESS_TYPE | NUM_QUERIES | ROWS_SCANNED | ROWS_PRUNED | ROWS_MATCHED | SEARCH_OPTIM                |
|-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------|
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       394106 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |       820272 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+

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 (2678400) foram removidas para uma série de consultas que filtraram as colunas device_id e temperature nas condições da cláusula WHERE.

A coluna device_id é sugerida como destino para uma otimização de pesquisa que usa o método de pesquisa EQUALITY. As verificações de tabela podem se beneficiar da adição dessa otimização de pesquisa.

Dica

Você pode usar a função ARRAY_TO_STRING para converter a coluna SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS em uma string para facilitar a leitura. Por exemplo:

ARRAY_TO_STRING(search_optimization_supported_expressions, ', ')
Copy