- Categorias:
QUERY_HISTORY , QUERY_HISTORY_BY_*¶
A família QUERY_HISTORY de funções de tabela pode ser usada para consultar o histórico de consultas do Snowflake em várias dimensões:
QUERY_HISTORY retorna consultas dentro de um intervalo de tempo especificado.
QUERY_HISTORY_BY_SESSION retorna consultas dentro de uma sessão e intervalo de tempo especificados.
QUERY_HISTORY_BY_USER retorna consultas enviadas por um usuário especificado dentro de um intervalo de tempo especificado.
QUERY_HISTORY_BY_WAREHOUSE retorna consultas executadas por um warehouse especificado dentro de um intervalo de tempo especificado.
Cada função é otimizada para consulta na dimensão especificada. Os resultados podem ser ainda mais filtrados usando predicados SQL.
Nota
Estas funções retornam a atividade de consulta dos últimos 7 dias.
Consulte também:
Exibição QUERY_HISTORY (Account Usage) Monitoramento da atividade de consulta com o Histórico de consultas (painel de controle do Snowsight)
Sintaxe¶
QUERY_HISTORY(
[ END_TIME_RANGE_START => <constant_expr> ]
[, END_TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <num> ] )
QUERY_HISTORY_BY_SESSION(
[ SESSION_ID => <constant_expr> ]
[, END_TIME_RANGE_START => <constant_expr> ]
[, END_TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <num> ] )
QUERY_HISTORY_BY_USER(
[ USER_NAME => '<string>' ]
[, END_TIME_RANGE_START => <constant_expr> ]
[, END_TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <num> ] )
QUERY_HISTORY_BY_WAREHOUSE(
[ WAREHOUSE_NAME => '<string>' ]
[, END_TIME_RANGE_START => <constant_expr> ]
[, END_TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <num> ] )
Argumentos¶
Todos os argumentos são opcionais.
END_TIME_RANGE_START => constant_expr
, .END_TIME_RANGE_END => constant_expr
Intervalo de tempo (no formato TIMESTAMP_LTZ), dos últimos 7 dias, nos quais a consulta terminou em execução:
Se
END_TIME_RANGE_END
não for especificado, a função retorna todas as consultas, inclusive as que ainda estão em execução.Se
END_TIME_RANGE_END
for CURRENT_TIMESTAMP, a função retorna apenas aquelas consultas que foram concluídas.
Se o intervalo não ficar dentro dos últimos 7 dias, um erro é retornado.
Nota
Se não for especificada a hora de início ou fim, as consultas mais recentes são retornadas até o limite especificado.
SESSION_ID => constant_expr
Aplica-se somente a QUERY_HISTORY_BY_SESSION
O identificador numérico de uma sessão ou CURRENT_SESSION. Somente as consultas da sessão especificada são retornadas.
Padrão: CURRENT_SESSION
USER_NAME => 'string'
Aplica-se somente a QUERY_HISTORY_BY_USER
Uma cadeia de caracteres especificando um nome de login de usuário ou CURRENT_USER. Somente as consultas feitas pelo usuário especificado são retornadas. Observe que o nome de login deve ser delimitado por aspas simples. Além disso, se o nome de login contiver quaisquer espaços, letras maiúsculas e minúsculas misturadas ou caracteres especiais, o nome deve ser delimitado por aspas duplas dentro das aspas simples (por exemplo,
'"User 1"'
vs'user1'
).Padrão: CURRENT_USER
WAREHOUSE_NAME => 'string'
Aplica-se somente a QUERY_HISTORY_BY_WAREHOUSE
Uma cadeia de caracteres especificando um nome de warehouse ou CURRENT_WAREHOUSE. Somente as consultas executadas por esse warehouse são retornadas. Observe que o nome do warehouse deve ser delimitado por aspas simples. Além disso, se o nome do warehouse contiver quaisquer espaços, letras maiúsculas e minúsculas misturadas ou caracteres especiais, o nome deve ser delimitado por aspas duplas dentro das aspas simples (por exemplo,
'"My Warehouse"'
vs'mywarehouse'
).Padrão: CURRENT_WAREHOUSE
RESULT_LIMIT => num
Um número especificando o número máximo de linhas retornadas pela função:
Se o número de linhas correspondentes for maior que este limite, as consultas com o tempo final mais recente (ou aquelas que ainda estão em execução) são retornadas até o limite especificado.
Intervalo:
1
a10000
Padrão:
100
.
Notas de uso¶
Retorna consultas executadas pelo usuário atual. Também retorna consultas executadas por qualquer usuário quando a função de execução, ou uma função superior em uma hierarquia, tem o privilégio MONITOR ou OPERATE nos warehouses em que as consultas foram executadas. Para obter mais informações, consulte Privilégios de warehouse virtual.
Ao chamar uma função de tabela do Information Schema, a sessão deve ter um esquema INFORMATION_SCHEMA em uso ou o nome da função deve ser totalmente qualificado. Para obter mais detalhes, consulte Snowflake Information Schema.
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).
Saída¶
A função retorna as seguintes colunas:
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
QUERY_ID |
TEXT |
A ID única da instrução. |
QUERY_TEXT |
TEXT |
Texto da instrução SQL. |
DATABASE_NAME |
TEXT |
Banco de dados especificado no contexto da consulta na compilação. |
SCHEMA_NAME |
TEXT |
Esquema especificado no contexto da consulta na compilação. |
QUERY_TYPE |
TEXT |
DML, consulta etc. Se a consulta estiver atualmente em execução, ou se a consulta tiver falhado, então 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. |
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. |
CLUSTER_NUMBER |
NUMBER |
O cluster (em um warehouse multicluster) no qual esta instrução foi executada. |
QUERY_TAG |
TEXT |
Tag de consulta definida para esta instrução pelo parâmetro de sessão QUERY_TAG. |
EXECUTION_STATUS |
TEXT |
Status de execução da consulta: resuming_warehouse, running, queued, blocked, success, failed_with_error ou failed_with_incident. |
ERROR_CODE |
NUMBER |
Código de erro, se a consulta tiver retornado um erro |
ERROR_MESSAGE |
TEXT |
Mensagem de erro, se a consulta tiver retornado um erro |
START_TIME |
TIMESTAMP_LTZ |
Hora de início da instrução |
END_TIME |
TIMESTAMP_LTZ |
Hora de término da instrução. Se a consulta ainda estiver em execução, o END_TIME é o carimbo de data/hora de época UNIX (“1970-01-01 00:00:00”), ajustado para o fuso horário local. Por exemplo, para o fuso horário do Pacífico, isso seria “1969-12-31 16:00:00.000 -0800”. |
TOTAL_ELAPSED_TIME |
NUMBER |
Tempo decorrido (em milissegundos) |
BYTES_SCANNED |
NUMBER |
Número de bytes digitalizados por esta instrução. |
ROWS_PRODUCED |
NUMBER |
Número de linhas produzidas por esta instrução. |
COMPILATION_TIME |
NUMBER |
Tempo de compilação (em milissegundos) |
EXECUTION_TIME |
NUMBER |
Tempo de execução (em milissegundos) |
QUEUED_PROVISIONING_TIME |
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. |
QUEUED_REPAIR_TIME |
NUMBER |
Tempo (em milissegundos) gasto na fila do warehouse, esperando que os recursos computados no warehouse sejam reparados. |
QUEUED_OVERLOAD_TIME |
NUMBER |
Tempo (em milissegundos) gasto na fila de espera do warehouse, devido à sobrecarga do warehouse devido à carga de trabalho atual da consulta. |
TRANSACTION_BLOCKED_TIME |
NUMBER |
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 |
NUMBER |
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 |
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. |
LIST_EXTERNAL_FILE_TIME |
NUMBER |
Tempo (em milissegundos) gasto listando arquivos externos. |
CREDITS_USED_CLOUD_SERVICES |
NUMBER |
Número de créditos usados para serviços de nuvem. |
RELEASE_VERSION |
TEXT |
Versão de lançamento no formato de |
EXTERNAL_FUNCTION_TOTAL_INVOCATIONS |
NUMBER |
O 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 |
NUMBER |
O número total de linhas que esta consulta enviou em todas as chamadas para todos os serviços remotos. |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS |
NUMBER |
O número total de linhas que esta consulta recebeu de todas as chamadas para todos os serviços remotos. |
EXTERNAL_FUNCTION_TOTAL_SENT_BYTES |
NUMBER |
O número total de bytes que esta consulta enviou em todas as chamadas para todos os serviços remotos. |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES |
NUMBER |
O número total de bytes que esta consulta recebeu de todas as chamadas para todos os serviços remotos. |
IS_CLIENT_GENERATED_STATEMENT |
BOOLEAN |
Indica se a consulta foi gerada pelo cliente. |
QUERY_HASH |
TEXT |
O valor de hash calculado com base no texto canônico SQL. |
QUERY_HASH_VERSION |
NUMBER |
A versão da lógica usada para calcular |
QUERY_PARAMETERIZED_HASH |
TEXT |
O valor de hash calculado com base na consulta parametrizada. |
QUERY_PARAMETERIZED_HASH_VERSION |
NUMBER |
A versão da lógica usada para calcular |
Os valores potenciais para a coluna QUERY_TYPE
incluem:
CREATE_USER
CREATE_ROLE
CREATE_NETWORK_POLICY
ALTER_ROLE
ALTER_NETWORK_POLICY
ALTER_ACCOUNT
DROP_SEQUENCE
DROP_USER
DROP_ROLE
DROP_NETWORK_POLICY
RENAME_NETWORK_POLICY
REVOKE
Exemplos¶
Recuperar até as últimas 100 consultas executadas na sessão atual:
select * from table(information_schema.query_history_by_session()) order by start_time;
Recuperar as 100 últimas consultas executadas pelo usuário atual (ou executadas por qualquer usuário em qualquer warehouse no qual o usuário atual tenha o privilégio MONITOR):
select * from table(information_schema.query_history()) order by start_time;
Recuperar as 100 últimas consultas executadas na última hora pelo usuário atual (ou executadas por qualquer usuário em qualquer warehouse no qual o usuário atual tenha o privilégio MONITOR):
select * from table(information_schema.query_history(dateadd('hours',-1,current_timestamp()),current_timestamp())) order by start_time;
Recuperar todas as consultas executadas pelo usuário atual (ou executadas por qualquer usuário em qualquer warehouse no qual o usuário atual tenha o privilégio MONITOR) dentro de um intervalo de tempo especificado de 30 minutos nos últimos 7 dias:
select * from table(information_schema.query_history( END_TIME_RANGE_START=>to_timestamp_ltz('2017-12-4 12:00:00.000 -0700'), END_TIME_RANGE_END=>to_timestamp_ltz('2017-12-4 12:30:00.000 -0700')));