DOCUMENTATION
/
Introdução
Guias
Desenvolvedor
Referência
Notas de lançamento
Tutoriais
Status
  1. Visão geral
    • Catálogo Snowflake Horizon
      • Aplicativos e ferramentas para conexão com o Snowflake
      • Warehouses virtuais
      • Bancos de dados, tabelas e exibições
      • Tipos de dados
        • Integração de dados
          1. Snowflake Openflow
          2. Apache Iceberg™
            1. Tabelas Apache Iceberg™
            2. Snowflake Open Catalog
        • Data engineering
          1. Carregamento de dados
          2. Tabelas dinâmicas
          3. Fluxos e tarefas
          4. Projetos dbt no Snowflake
          5. Descarregamento de dados
        • Storage Lifecycle Policies
        • Migrações
        • Consultas
            1. Junções
            2. Subconsultas
              • Consulta de dados hierárquicos
                • Expressões de tabela comuns (CTE)
                  • Consulta de dados semiestruturados
                    • Uso da pesquisa de texto completo
                      • Construção de SQL no tempo de execução
                        • Análise de dados de séries temporais
                          • Análise de dados com funções de janela
                            • Reconhecimento de compatibilidade
                              • Sequências
                                • Resultados da consulta persistente
                                  • Contagens distintas
                                  • Estimativa de similaridade
                                    • Estimativa de frequência
                                      • Estimativa de valores percentuais
                                        • Monitoramento da atividade de consulta com o Histórico de consultas
                                          • Uso de insights de consulta para melhorar o desempenho
                                            • Hash de consulta
                                              • Remoção Top-K
                                                • Cancelamento de instruções
                                              • Listagens
                                              • Colaboração
                                              • AI e ML do Snowflake
                                              • Snowflake Postgres
                                              • Alertas e notificações
                                              • Segurança
                                              • Governança de dados
                                              • Privacidade
                                              • Organizações e contas
                                              • Continuidade dos negócios e recuperação de dados
                                              • Otimização de desempenho
                                              • Custo e faturamento
                                              GuiasConsultasHash de consulta

                                              Uso do hash de consulta para identificar padrões e tendências em consultas¶

                                              Para identificar, agrupar e analisar consultas semelhantes no histórico de consultas, você pode usar um hash do texto da consulta. Por exemplo, você pode:

                                              • Agrupe consultas pelo hash de consulta para identificar padrões em consultas caras.

                                              • Determine os efeitos das melhorias de desempenho (por exemplo, alterações nas chaves de clustering) em consultas repetidas.

                                              Nas exibições e funções de tabela a seguir, você pode usar as colunas query_hash e query_parameterized_hash para obter o hash do texto da consulta:

                                              • Exibições do ACCOUNT_USAGE (retenção de 1 ano)

                                                • Exibição QUERY_HISTORY

                                                • Exibição QUERY_ACCELERATION_ELIGIBLE

                                                • Exibição TASK_HISTORY

                                              • Funções de tabela do INFORMATION_SCHEMA (retenção de 7 dias)

                                                • Função de tabela QUERY_HISTORY

                                                • Função de tabela TASK_HISTORY

                                              Você pode usar esse hash para analisar consultas repetidas.

                                              Uso do hash da consulta (query_hash)¶

                                              A coluna query_hash contém um valor de hash que é calculado com base no texto canônico da instrução SQL. Consultas repetidas que têm exatamente o mesmo texto de consulta têm os mesmos valores de query_hash.

                                              Consultas repetidas também terão o mesmo query_hash se o texto de consulta for diferente apenas no seguinte:

                                              • Identificador, variável de sessão e nome de estágio que não diferenciam maiúsculas de minúsculas

                                                Observe que isso não inclui identificadores especificados usando IDENTIFIER() com variáveis de vinculação. Variáveis de vinculação com valores diferentes produzem hashes de consulta diferentes.

                                              • Espaço em branco

                                              • Comentários

                                              Se qualquer outra parte do texto de consulta de duas consultas for diferente, essas consultas terão valores de query_hash diferentes.

                                              Por exemplo, as consultas a seguir têm o mesmo valor de query_hash porque têm exatamente o mesmo texto de consulta.

                                              SELECT * FROM table1 WHERE table1.name = 'TIM'
                                              
                                              Copy
                                              SELECT * FROM table1 WHERE table1.name = 'TIM'
                                              
                                              Copy

                                              Você pode usar o valor de query_hash para encontrar padrões no desempenho da consulta que, de outra forma, não seriam óbvios. Por exemplo, embora uma consulta possa não ser excessivamente cara durante uma única execução, uma consulta repetida com frequência pode levar a custos elevados, com base no número de vezes que ela é executada. Você pode usar o valor de query_hash para identificar as consultas nas quais focar primeiro na otimização.

                                              Por exemplo, a consulta a seguir usa o valor de query_hash para identificar IDs da consulta para as 100 consultas de execução mais longa:

                                              SELECT
                                                  query_hash,
                                                  COUNT(*),
                                                  SUM(total_elapsed_time),
                                                  ANY_VALUE(query_id)
                                                FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
                                                WHERE warehouse_name = 'MY_WAREHOUSE'
                                                  AND DATE_TRUNC('day', start_time) >= CURRENT_DATE() - 7
                                                GROUP BY query_hash
                                                ORDER BY SUM(total_elapsed_time) DESC
                                                LIMIT 100;
                                              
                                              Copy

                                              Uso do hash da consulta parametrizada (query_parameterized_hash)¶

                                              query_parameterized_hash contém um valor de hash que é calculado com base na consulta parametrizada, o que significa a versão da consulta após a parametrização dos literais. Esses literais devem ser usados no predicado de consulta e com um dos seguintes operadores de comparação:

                                              • = (igual a)

                                              • != (não é igual a)

                                              • >= (é maior ou igual a)

                                              • <= (é menor ou igual a)

                                              Consultas repetidas (incluindo aquelas com valores de parâmetros diferentes) têm o mesmo valor query_parameterized_hash.

                                              Consultas repetidas também terão o mesmo query_parameterized_hash se o texto de consulta for diferente apenas no seguinte:

                                              • Identificador, variável de sessão e nome de estágio que não diferenciam maiúsculas de minúsculas

                                                Observe que isso não inclui identificadores especificados usando IDENTIFIER() com variáveis de vinculação. Variáveis de vinculação com valores diferentes produzem hashes de consulta diferentes.

                                              • Espaço em branco

                                              • Comentários

                                              Consultas que têm o mesmo valor query_hash também têm o mesmo valor query_parameterized_hash, mas não vice-versa.

                                              Por exemplo, as consultas a seguir têm o mesmo valor query_parameterized_hash porque os valores literais são a única diferença entre as consultas:

                                              SELECT * FROM table1 WHERE table1.name = 'TIM'
                                              
                                              Copy
                                              SELECT * FROM table1 WHERE table1.name = 'AIHUA'
                                              
                                              Copy

                                              Assim como o valor query_hash, você pode usar o valor query_parameterized_hash para encontrar padrões no desempenho da consulta que, de outra forma, poderiam não ser óbvios.

                                              A instrução a seguir calcula a média total_elapsed_time a cada dia para todas as consultas com um valor query_parameterized_hash específico (cbd58379a88c37ed6cc0ecfebb053b03):

                                              SELECT
                                                  DATE_TRUNC('day', start_time),
                                                  SUM(total_elapsed_time),
                                                  ANY_VALUE(query_id)
                                                FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
                                                WHERE query_parameterized_hash = 'cbd58379a88c37ed6cc0ecfebb053b03'
                                                  AND DATE_TRUNC('day', start_time) >= CURRENT_DATE() - 30
                                                GROUP BY DATE_TRUNC('day', start_time);
                                              
                                              Copy

                                              Verificação da versão que foi usada para gerar o hash¶

                                              Com o tempo, a lógica usada pelo Snowflake para gerar o hash de consulta pode mudar. Alterações nesta lógica podem resultar em diferentes hashes produzidos para a mesma consulta. Por exemplo, para uma determinada consulta, o hash gerado pela versão 1 da lógica pode ser diferente do hash gerado pela versão 2 da lógica.

                                              As exibições e a saída da função de tabela que incluem as colunas query_hash e query_parameterized_hash também incluem as seguintes colunas que especificam a versão da lógica usada para produzir os hashes:

                                              • query_hash_version

                                              • query_parameterized_hash_version

                                              O número da versão nessas colunas é NUMBER (por exemplo, 1 para a primeira versão da lógica, 2 para a segunda versão da lógica etc.).

                                              Se essas colunas contiverem números de versão diferentes para períodos de tempo diferentes, você poderá usar essas colunas de versão para identificar os diferentes hashes para a mesma consulta. Por exemplo:

                                              ...
                                              WHERE (query_hash = 'hash_from_v1' AND query_hash_version = 1)
                                                OR (query_hash = 'hash_from_v2' AND query_hash_version = 2)
                                              
                                              Copy

                                              Esta página foi útil?

                                              Visite Snowflake
                                              Participe da conversa
                                              Como desenvolver com Snowflake
                                              Compartilhe seu feedback
                                              Leia as novidades em nosso blog
                                              Tenha sua própria certificação
                                              Aviso de privacidadeTermos do siteConfigurações de cookies© 2026 Snowflake, Inc. Todos os direitos reservados.
                                              1. Uso do hash da consulta (query_hash)
                                              2. Uso do hash da consulta parametrizada (query_parameterized_hash)
                                              3. Verificação da versão que foi usada para gerar o hash
                                              Linguagem: Português
                                              • English
                                              • Français
                                              • Deutsch
                                              • 日本語
                                              • 한국어
                                              • Português