- Esquemas:
Exibição QUERY_HISTORY¶
Esta exibição do Account Usage pode ser usada para consultar o histórico de consultas do Snowflake por várias dimensões (intervalo de tempo, sessão, usuário, warehouse etc.) nos últimos 365 dias (1 ano).
A exibição está disponível tanto nos esquemas ACCOUNT_USAGE como READER_ACCOUNT_USAGE com as seguintes diferenças:
As seguintes colunas estão disponíveis apenas na exibição da conta de leitor:
READER_ACCOUNT_NAME
READER_ACCOUNT_DELETED_ON
Como alternativa, você pode chamar a função de tabela Information Schema, também chamada de QUERY_HISTORY; no entanto, observe que a função de tabela restringe os resultados à atividade dos últimos 7 dias, em vez de 365 dias para a exibição Account Usage. Veja a descrição da função QUERY_HISTORY.
Consulte também:
Monitoramento da atividade de consulta com o Histórico de consultas (painel Snowsight)
Colunas¶
A coluna Disponível somente em exibições Account Usage de leitor na tabela a seguir indica se a coluna QUERY_HISTORY está disponível no esquema READER_ACCOUNT_USAGE.
Nome da coluna |
Tipo de dados |
Descrição |
Disponível apenas em exibições Account Usage de leitor |
---|---|---|---|
|
VARCHAR |
Nome da conta do leitor na qual a instrução SQL foi executada. |
✔ |
|
VARCHAR |
Identificador interno/gerado pelo sistema para a instrução SQL. |
✔ |
|
VARCHAR |
Texto da instrução SQL. O limite é de 100 mil caracteres. As instruções SQL contendo mais de 100 mil caracteres serão truncadas. |
|
|
NUMBER |
Identificador interno/gerado pelo sistema para o banco de dados que estava em uso. |
✔ |
|
VARCHAR |
Banco de dados especificado no contexto da consulta na compilação. |
✔ |
|
NUMBER |
Identificador interno/gerado pelo sistema para o esquema que estava em uso. |
✔ |
|
VARCHAR |
Esquema especificado no contexto da consulta na compilação. |
✔ |
|
VARCHAR |
DML, consulta etc. Se a consulta tiver falhado, o tipo de consulta pode ser UNKNOWN. |
|
|
NUMBER |
Sessão que executou a instrução. |
✔ |
|
VARCHAR |
Usuário que emitiu a consulta. |
|
|
VARCHAR |
Função que estava ativa na sessão no momento da consulta. |
✔ |
|
NUMBER |
Identificador interno/gerado pelo sistema do warehouse que foi utilizado. |
✔ |
|
VARCHAR |
Warehouse em que a consulta foi executada, se houver. |
✔ |
|
VARCHAR |
Tamanho do warehouse quando esta instrução foi executada. |
✔ |
|
VARCHAR |
Tipo do warehouse quando esta instrução foi executada. |
✔ |
|
NUMBER |
O cluster (em um warehouse multicluster) no qual esta instrução foi executada. |
✔ |
|
VARCHAR |
Tag de consulta definida para esta instrução pelo parâmetro de sessão QUERY_TAG. |
✔ |
|
VARCHAR |
Status de execução da consulta. Valores válidos: |
✔ |
|
NUMBER |
Código de erro, se a consulta tiver retornado um erro |
✔ |
|
VARCHAR |
Mensagem de erro, se a consulta tiver retornado um erro |
✔ |
|
TIMESTAMP_LTZ |
Hora de início da instrução (no fuso horário local) |
✔ |
|
TIMESTAMP_LTZ |
Hora de término da instrução (no fuso horário local). |
✔ |
|
NUMBER |
Tempo transcorrido (em milissegundos). |
✔ |
|
NUMBER |
Número de bytes digitalizados por esta instrução. |
✔ |
|
FLOAT |
A porcentagem de dados escaneados a partir do cache de disco local. O valor varia de 0,0 a 1,0. Multiplique por 100 para obter uma porcentagem verdadeira. |
|
|
NUMBER |
Número de bytes escritos (por exemplo, ao carregar em uma tabela). |
|
|
NUMBER |
Número de bytes gravados em um objeto de resultado. Por exemplo, |
|
|
NUMBER |
Número de bytes lidos de um objeto resultado. |
|
|
NUMBER |
O número de linhas produzidas por esta instrução. A coluna ROWS_PRODUCED será descontinuada em uma versão futura. O valor na coluna ROWS_PRODUCED nem sempre reflete o número lógico de linhas afetadas por uma consulta. Snowflake recomenda usar as colunas ROWS_INSERTED, ROWS_UPDATED, ROWS_WRITTEN_TO RESULTS ou ROWS_DELETED. |
✔ |
|
NUMBER |
Número de linhas inseridas pela consulta. |
|
|
NUMBER |
Número de linhas atualizadas pela consulta. |
|
|
NUMBER |
Número de linhas excluídas pela consulta. |
|
|
NUMBER |
Número de linhas descarregadas durante a exportação de dados. |
|
|
NUMBER |
Número de bytes excluídos pela consulta. |
|
|
NUMBER |
Número de micropartições escaneadas. |
|
|
NUMBER |
Total de micropartições de todas as tabelas incluídas nesta consulta. |
|
|
NUMBER |
Volume de dados despejados em disco local. |
|
|
NUMBER |
Volume de dados despejados em disco remoto. |
|
|
NUMBER |
Volume de dados enviados pela rede. |
|
|
NUMBER |
Tempo de compilação (em milissegundos) |
✔ |
|
NUMBER |
Tempo de execução (em milissegundos) |
✔ |
|
NUMBER |
Tempo (em milissegundos) gasto na fila do warehouse, esperando que o warehouse compute recursos para provisionar, devido à criação, retomada ou redimensionamento do warehouse. |
✔ |
|
NUMBER |
Tempo (em milissegundos) gasto na fila do warehouse, esperando que os recursos computados no warehouse sejam reparados. |
✔ |
|
NUMBER |
Tempo (em milissegundos) gasto na fila de espera do warehouse, devido à sobrecarga do warehouse devido à carga de trabalho atual da consulta. |
✔ |
|
NUMBER |
Tempo (em milissegundos) gasto bloqueado por um DML concorrente. |
✔ |
|
VARCHAR |
Provedor de nuvem de destino para instruções que descarregam dados para outra região e/ou nuvem. |
✔ |
|
VARCHAR |
Região de destino para instruções que descarregam dados para outra região e/ou nuvem. |
✔ |
|
NUMBER |
Número de bytes transferidos em instruções que descarregam dados de tabelas do Snowflake. |
✔ |
|
VARCHAR |
Provedor de nuvem de origem para instruções que carregam dados de outra região e/ou nuvem. |
✔ |
|
VARCHAR |
Região de origem para instruções que carregam dados de outra região e/ou nuvem. |
✔ |
|
NUMBER |
Número de bytes transferidos em uma operação de replicação de outra conta. A conta de origem pode estar na mesma região ou em uma região diferente da conta atual. |
✔ |
|
NUMBER |
Tempo (em milissegundos) gasto listando arquivos externos. |
|
|
NUMBER |
Número de créditos usados para serviços de nuvem. Este valor não leva em conta o ajuste para serviços de nuvem e, por isso, pode ser maior do que os créditos que são faturados. Para determinar quantos créditos foram realmente cobrados, execute consultas na exibição METERING_DAILY_HISTORY. |
✔ |
|
TIMESTAMP_LTZ |
Hora e data (no fuso horário UTC) quando a conta do leitor é excluída. |
✔ |
|
VARCHAR |
Versão de lançamento no formato de |
|
|
NUMBER |
O número agregado de vezes que esta consulta chamou serviços remotos. Para obter detalhes importantes, consulte as Notas de uso. |
|
|
NUMBER |
O número total de linhas que esta consulta enviou em todas as chamadas para todos os serviços remotos. |
|
|
NUMBER |
O número total de linhas que esta consulta recebeu de todas as chamadas para todos os serviços remotos. |
|
|
NUMBER |
O número total de bytes que esta consulta enviou em todas as chamadas para todos os serviços remotos. |
|
|
NUMBER |
O número total de bytes que esta consulta recebeu de todas as chamadas para todos os serviços remotos. |
|
|
NUMBER |
A porcentagem aproximada de recursos de computação ativos no warehouse para a execução desta consulta. |
|
|
BOOLEAN |
Indica se a consulta foi gerada pelo cliente. |
|
|
NUMBER |
Número de bytes digitalizados por Query Acceleration Service. |
|
|
NUMBER |
Número de partições digitalizadas por Query Acceleration Service. |
|
|
NUMBER |
Fator de escala no limite superior do qual uma consulta teria se beneficiado. |
|
|
NUMBER |
ID da transação que contém a instrução ou 0 se a instrução não for executada dentro de uma transação. |
|
|
NUMBER |
Tempo (em milissegundos) para completar a pesquisa em cache ao chamar uma função memoizável. |
|
|
VARCHAR |
Especifica um APPLICATION, DATABASE_ROLE ou ROLE que executou a consulta. |
|
|
VARCHAR |
O valor de hash calculado com base no texto canônico SQL. |
|
|
NUMBER |
A versão da lógica usada para calcular |
|
|
VARCHAR |
O valor de hash calculado com base na consulta parametrizada. |
|
|
NUMBER |
A versão da lógica usada para calcular |
|
|
VARCHAR |
Uma cadeia de caracteres formatada em JSON que contém três campos relacionados às funções secundárias que foram avaliadas na consulta: uma lista de funções secundárias ou |
|
|
NUMBER |
Número de linhas gravadas em um objeto de resultado. Para CREATE TABLE AS SELECT (CTAS) e todas as operações DML, esse resultado é |
|
|
NUMBER |
Tempo total de execução (em milissegundos) para novas tentativas de consulta causadas por erros acionáveis. Para obter mais informações, consulte Colunas de nova tentativa de consulta. |
|
|
VARIANT |
Matriz de mensagens de erro para erros acionáveis. A matriz contém uma mensagem de erro para cada nova tentativa de consulta. Se não houver nova tentativa de consulta, a matriz estará vazia. Para obter mais informações, consulte Colunas de nova tentativa de consulta. |
|
|
NUMBER |
Tempo total de execução (em milissegundos) para novas tentativas de consulta causadas por erros que não são acionáveis. Para obter mais informações, consulte Colunas de nova tentativa de consulta. |
Notas de uso¶
Geral¶
A latência da visualização pode ser de até 45 minutos.
Os valores para as colunas EXTERNAL_FUNCTION_TOTAL_INVOCATIONS, EXTERNAL_FUNCTION_TOTAL_SENT_ROWS, EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS, EXTERNAL_FUNCTION_TOTAL_SENT_BYTES e EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES são afetados por muitos fatores, inclusive:
O número de funções externas na instrução SQL.
O número de linhas por lote enviadas para cada serviço remoto.
O número de tentativas devido a erros transitórios (por exemplo, porque uma resposta não foi recebida dentro do tempo esperado).
Colunas de nova tentativa de consulta¶
Uma consulta pode precisar ser repetida uma ou mais vezes para ser concluída com êxito. Pode haver diversas causas que resultam em uma nova tentativa de consulta. Algumas dessas causas são acionáveis, ou seja, um usuário pode fazer alterações para reduzir ou eliminar novas tentativas de consulta para uma consulta específica. Por exemplo, se uma consulta for repetida devido a um erro de falta de memória, a modificação das configurações do warehouse poderá resolver o problema.
Algumas novas tentativas de consulta são causadas por uma falha que não é acionável. Ou seja, não há nenhuma alteração que um usuário possa fazer para impedir a repetição da consulta. Por exemplo, uma interrupção na rede pode resultar em uma nova tentativa de consulta. Neste caso, não há nenhuma alteração na consulta ou no warehouse que a executa que possa impedir a nova tentativa da consulta.
As colunas QUERY_RETRY_TIME, QUERY_RETRY_CAUSE e FAULT_HANDLING_TIME podem ajudar você a otimizar as consultas que são repetidas e a entender melhor as flutuações no desempenho da consulta.
Tabelas híbridas¶
A orientação a seguir refere-se à execução de consultas em tabelas híbridas ao usar exibições QUERY_HISTORY.
Consultas de curta duração que operam exclusivamente em tabelas híbridas não gerarão mais um registro nesta exibição ou QUERY_HISTORY (função de tabela do Information Schema). Para monitorar essas consultas, use AGGREGATE_QUERY_HISTORY. Essa exibição permite monitorar mais facilmente cargas de trabalho operacionais de alto rendimento em busca de tendências e problemas.
Consultas de curta duração que operam exclusivamente em tabelas híbridas também não fornecerão mais um perfil de consulta que você possa inspecionar no Snowsight.
Consultas em tabelas híbridas geram um registro na exibição QUERY_HISTORY e um perfil de consulta se alguma das seguintes condições for atendida:
Uma consulta é executada em qualquer tipo de tabela diferente do tipo de tabela híbrida. Essa condição garante que não haja alteração de comportamento para cargas de trabalho não Unistore existentes.
Uma consulta falha com um EXECUTION_STATUS de
failed_with_incident
(consulte QUERY_HISTORY). Essa condição garante que você possa investigar e relatar a consulta específica com falha para receber assistência.Uma consulta está sendo executada por mais de aproximadamente 500 milissegundos. Essa condição garante que você possa investigar problemas de desempenho em consultas lentas.
O tamanho do resultado da consulta é muito grande.
Uma consulta está associada a uma transação Snowflake.
Uma consulta contém uma função do sistema com efeitos colaterais.
Uma consulta não é um dos seguintes tipos de instrução: SELECT, INSERT, DELETE, UPDATE, MERGE.
Uma consulta é executada a partir de SnowSQL, Snowsight ou console clássico. Essa condição garante que você possa gerar manualmente um perfil de consulta completo para investigar problemas de desempenho de qualquer consulta específica, mesmo que ela não seja categorizada como de longa execução.
Mesmo que uma consulta não atenda a nenhum critério acima, as consultas também podem ser amostradas periodicamente para gerar um registro na exibição QUERY_HISTORY e um perfil de consulta para ajudar em sua investigação.
Comandos PUT e GET¶
Para os comandos PUT e GET, um EXECUTION_STATUS de success
em QUERY_HISTORY não significa que os arquivos de dados foram carregados ou baixados com sucesso. Em vez disso, o status indica que o Snowflake recebeu autorização para prosseguir com a transferência do arquivo.