- Esquema:
Exibição AGGREGATE_QUERY_HISTORY¶
Essa exibição do Account Usage permite monitorar e rastrear a execução de instruções ao longo do tempo. Ela contém dados semelhantes à exibição QUERY_HISTORY, mas é agregada em intervalos de um minuto para instruções SQL repetidas. Você pode usar essa exibição para monitorar sua carga de trabalho e analisar o desempenho.
Colunas¶
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
CALLS |
NUMBER |
Número de vezes que a instrução (consulta + plano de consulta) foi executada no intervalo de agregação. |
INTERVAL_START_TIME |
TIMESTAMP_LTZ |
Hora de início da janela de medição (no fuso horário local). |
INTERVAL_END_TIME |
TIMESTAMP_LTZ |
Hora de fim da janela de medição (no fuso horário local). |
QUERY_PARAMETERIZED_HASH |
TEXT |
ID exclusivo para identificar consultas parametrizadas idênticas. Consulte Coluna QUERY_PARAMETERIZED_HASH. |
QUERY_TEXT |
TEXT |
Texto de amostra da instrução SQL. |
DATABASE_ID |
NUMBER |
Identificador interno/gerado pelo sistema para o banco de dados que estava em uso. |
DATABASE_NAME |
TEXT |
Banco de dados que estava em uso no momento da consulta. |
SCHEMA_ID |
NUMBER |
Identificador interno/gerado pelo sistema para o esquema que estava em uso. |
SCHEMA_NAME |
TEXT |
Esquema que estava em uso no momento da consulta. |
QUERY_TYPE |
TEXT |
DML, consulta etc. Se a consulta tiver falhado, o tipo de consulta pode ser UNKNOWN. |
SESSION_ID |
NUMBER |
Sessão que executou a instrução. |
USER_NAME |
TEXT |
Usuário que emitiu a consulta. |
ROLE_NAME |
TEXT |
Função que estava ativa na sessão no momento da consulta. |
ROLE_TYPE |
TEXT |
Especifica se um |
WAREHOUSE_ID |
NUMBER |
Identificador interno/gerado pelo sistema do warehouse que foi utilizado. |
WAREHOUSE_NAME |
TEXT |
Warehouse em que a consulta foi executada, se houver. |
WAREHOUSE_SIZE |
TEXT |
Tamanho do warehouse quando esta instrução foi executada. |
WAREHOUSE_TYPE |
TEXT |
Tipo do warehouse quando esta instrução foi executada. |
QUERY_TAG |
TEXT |
Tag de consulta definida para esta instrução pelo parâmetro de sessão QUERY_TAG. |
IS_CLIENT_GENERATED_STATEMENT |
BOOLEAN |
Indica se a consulta foi gerada pelo cliente. |
RELEASE_VERSION |
TEXT |
Versão de lançamento no formato de |
ERRORS |
ARRAY |
Lista de códigos de erro e mensagens que ocorreram durante o intervalo de agregação. Cada erro está no formato |
TOTAL_ELAPSED_TIME |
OBJECT |
Tempo transcorrido (em milissegundos). |
BYTES_SCANNED |
OBJECT |
Número de bytes digitalizados por esta instrução. |
PERCENTAGE_SCANNED_FROM_CACHE |
OBJECT |
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. |
BYTES_WRITTEN |
OBJECT |
Número de bytes escritos (por exemplo, ao carregar em uma tabela). |
BYTES_WRITTEN_TO_RESULT |
OBJECT |
Número de bytes gravados em um objeto de resultado. Por exemplo, |
BYTES_READ_FROM_RESULT |
OBJECT |
Número de bytes lidos de um objeto resultado. |
ROWS_PRODUCED |
OBJECT |
Número de linhas produzidas por esta instrução. |
ROWS_INSERTED |
OBJECT |
Número de linhas inseridas pela consulta. |
ROWS_UPDATED |
OBJECT |
Número de linhas atualizadas pela consulta. |
ROWS_DELETED |
OBJECT |
Número de linhas excluídas pela consulta. |
ROWS_UNLOADED |
OBJECT |
Número de linhas descarregadas durante a exportação de dados. |
BYTES_DELETED |
OBJECT |
Número de bytes excluídos pela consulta. |
PARTITIONS_SCANNED |
OBJECT |
Número de micropartições escaneadas. |
PARTITIONS_TOTAL |
OBJECT |
Total de micropartições de todas as tabelas incluídas nesta consulta. |
BYTES_SPILLED_TO_LOCAL_STORAGE |
OBJECT |
Volume de dados despejados em disco local. |
BYTES_SPILLED_TO_REMOTE_STORAGE |
OBJECT |
Volume de dados despejados em disco remoto. |
BYTES_SENT_OVER_THE_NETWORK |
OBJECT |
Volume de dados enviados pela rede. |
COMPILATION_TIME |
OBJECT |
Tempo de compilação (em milissegundos). |
EXECUTION_TIME |
OBJECT |
Tempo de execução (em milissegundos). |
QUEUED_PROVISIONING_TIME |
OBJECT |
Tempo (em milissegundos) gasto na fila do warehouse, esperando que o warehouse compute recursos para provisionar, devido à criação, retomada ou redimensionamento do warehouse. |
QUEUED_REPAIR_TIME |
OBJECT |
Tempo (em milissegundos) gasto na fila do warehouse, esperando que os recursos computados no warehouse sejam reparados. |
QUEUED_OVERLOAD_TIME |
OBJECT |
Tempo (em milissegundos) gasto na fila de espera do warehouse, devido à sobrecarga do warehouse devido à carga de trabalho atual da consulta. |
TRANSACTION_BLOCKED_TIME |
OBJECT |
Tempo (em milissegundos) gasto bloqueado por um DML concorrente. |
OUTBOUND_DATA_TRANSFER_CLOUD |
TEXT |
Provedor de nuvem de destino para instruções que descarregam dados para outra região e/ou nuvem. |
OUTBOUND_DATA_TRANSFER_REGION |
TEXT |
Região de destino para instruções que descarregam dados para outra região e/ou nuvem. |
OUTBOUND_DATA_TRANSFER_BYTES |
OBJECT |
Número de bytes transferidos em instruções que descarregam dados para outra região e/ou nuvem. |
INBOUND_DATA_TRANSFER_CLOUD |
TEXT |
Provedor de nuvem de origem para instruções que carregam dados de outra região e/ou nuvem. |
INBOUND_DATA_TRANSFER_REGION |
TEXT |
Região de origem para instruções que carregam dados de outra região e/ou nuvem. |
INBOUND_DATA_TRANSFER_BYTES |
OBJECT |
Número de bytes transferidos em instruções que carregam dados de outra região e/ou nuvem. |
LIST_EXTERNAL_FILES_TIME |
OBJECT |
Tempo (em milissegundos) gasto listando arquivos externos. |
CREDITS_USED_CLOUD_SERVICES |
OBJECT |
Número de créditos usados para serviços de nuvem. |
EXTERNAL_FUNCTION_TOTAL_INVOCATIONS |
OBJECT |
Número agregado de vezes que esta consulta chamou serviços remotos. Para obter detalhes importantes, consulte as Notas de uso. |
EXTERNAL_FUNCTION_TOTAL_SENT_ROWS |
OBJECT |
Número total de linhas que esta consulta enviou em todas as chamadas para todos os serviços remotos. |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS |
OBJECT |
Número total de linhas que esta consulta recebeu de todas as chamadas para todos os serviços remotos. |
EXTERNAL_FUNCTION_TOTAL_SENT_BYTES |
OBJECT |
Número total de bytes que esta consulta enviou em todas as chamadas para todos os serviços remotos. |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES |
OBJECT |
Número total de bytes que esta consulta recebeu de todas as chamadas para todos os serviços remotos. |
QUERY_LOAD_PERCENT |
OBJECT |
A porcentagem aproximada de recursos de computação ativos no warehouse para a execução desta consulta. |
QUERY_ACCELERATION_BYTES_SCANNED |
OBJECT |
Número de bytes digitalizados por Query Acceleration Service. |
QUERY_ACCELERATION_PARTITIONS_SCANNED |
OBJECT |
Número de partições digitalizadas por Query Acceleration Service. |
QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR |
OBJECT |
Fator de escala no limite superior do qual uma consulta teria se beneficiado. |
CHILD_QUERIES_WAIT_TIME |
OBJECT |
Tempo (em milissegundos) para completar a pesquisa em cache ao chamar uma função memoizável. |
HYBRID_TABLE_REQUESTS_THROTTLED_COUNT |
NUMBER |
Número de consultas de tabela híbrida que foram limitadas. |
O tipo de dados OBJECT contém os seguintes campos:
Nome do campo |
Descrição |
---|---|
Soma de todas as execuções dentro do intervalo de agregação. |
|
Média de todas as execuções dentro do intervalo de agregação. |
|
Desvio padrão em todas as execuções dentro do intervalo de agregação. |
|
Mínimo em todas as execuções dentro do intervalo de agregação. |
|
Média de todas as execuções dentro do intervalo de agregação. |
|
90º percentil em todas as execuções dentro do intervalo de agregação. |
|
99º percentil em todas as execuções dentro do intervalo de agregação. |
|
99,9º percentil em todas as execuções dentro do intervalo de agregação. |
|
Máximo em todas as execuções dentro do intervalo de agregação. |
Nota
As seguintes colunas do tipo OBJECT não contêm um campo sum
:
PERCENTAGE_SCANNED_FROM_CACHE
QUERY_LOAD_PERCENT
QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR
Coluna QUERY_PARAMETERIZED_HASH¶
A coluna 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 de todos os literais.
Por exemplo, as consultas a seguir têm o mesmo valor QUERY_PARAMETERIZED_HASH:
SELECT * FROM table1 WHERE table1.name = 'TIM'
SELECT * FROM table1 WHERE table1.name = 'AIHUA'
O valor QUERY_PARAMETERIZED_HASH tem as seguintes restrições:
O literal constante deve estar nas seguintes funções binárias em predicados: equal, not equal, greater (or equal) than, smaller (or equal) than.
Os aliases devem ser os mesmos.
Enquanto houver diferença no texto SQL, os valores QUERY_HASH e QUERY_PARAMETERIZED_HASH serão diferentes, com as seguintes exceções:
O identificador/variável de sessão/nome do estágio não diferencia maiúsculas de minúsculas.
As diferenças de espaço em branco são ignoradas.
Literais que satisfazem a regra do predicado binário mencionada acima.
Notas de uso¶
A latência da visualização pode ser de até 180 minutos (3 horas).
Exemplos¶
Você pode consultar a exibição para monitorar a taxa de transferência e a simultaneidade geral da carga de trabalho. Muitas cargas de trabalho têm um padrão cíclico regular. Quaisquer picos ou quedas inesperados podem valer a pena investigar.
Por exemplo, monitore o rendimento e a simultaneidade do warehouse my_warehouse
na primeira semana de novembro:
SELECT
interval_start_time
, SUM(calls) AS execution_count
, SUM(calls) / 60 AS queries_per_second
, COUNT(DISTINCT session_id) AS unique_sessions
, COUNT(user_name) AS unique_users
FROM snowflake.account_usage.aggregate_query_history
WHERE TRUE
AND warehouse_name = 'MY_WAREHOUSE'
AND interval_start_time > '2023-11-01'
AND interval_start_time < '2023-11-08'
GROUP BY
interval_start_time
;
As consultas mais comuns e muito repetidas podem ser um bom lugar para concentrar quaisquer esforços para otimizar ou melhorar a eficiência da sua carga de trabalho. Você pode consultar a exibição para identificar as principais consultas de uma carga de trabalho por contagem de execução.
Por exemplo, identifique as principais consultas por contagem de execução para o warehouse my_warehouse
:
SELECT
query_parameterized_hash
, ANY_VALUE(query_text)
, SUM(calls) AS execution_count
FROM snowflake.account_usage.aggregate_query_history
WHERE TRUE
AND warehouse_name = 'MY_WAREHOUSE'
AND interval_start_time > '2023-11-01'
AND interval_start_time < '2023-11-08'
GROUP BY
query_parameterized_hash
ORDER BY execution_count DESC
;
Para identificar as consultas mais lentas pela latência total média:
SELECT
query_parameterized_hash
, any_value(query_text)
, SUM(total_elapsed_time:"sum"::NUMBER) / SUM (calls) as avg_latency
FROM snowflake.account_usage.aggregate_query_history
WHERE TRUE
AND warehouse_name = 'MY_WAREHOUSE'
AND interval_start_time > '2023-07-01'
AND interval_start_time < '2023-07-08'
GROUP BY
query_parameterized_hash
ORDER BY avg_latency DESC
;
Para analisar o desempenho ao longo do tempo para uma consulta específica de interesse:
SELECT
interval_start_time
, total_elapsed_time:"avg"::number avg_elapsed_time
, total_elapsed_time:"min"::number min_elapsed_time
, total_elapsed_time:"p90"::number p90_elapsed_time
, total_elapsed_time:"p99"::number p99_elapsed_time
, total_elapsed_time:"max"::number max_elapsed_time
FROM snowflake.account_usage.aggregate_query_history
WHERE TRUE
AND query_parameterized_hash = '<123456>'
AND interval_start_time > '2023-07-01'
AND interval_start_time < '2023-07-08'
ORDER BY interval_start_time DESC
;