Description
Contém os IDs das consultas das consultas executadas na sessão atual, em ordem de execução. Use-a para encontrar “as consultas que acabei de executar” emsystem.query_log sem precisar atribuir query_id no client-side nem marcar consultas com log_comment.
O conteúdo tem escopo de sessão: cada sessão vê apenas o seu próprio histórico, e as consultas de outras sessões nunca aparecem.
Um ID da consulta é registrado quando a consulta inicia, portanto:
- A consulta em execução no momento já aparece quando ela faz um SELECT na tabela.
- Consultas que falharam também são registradas - obter o ID da consulta de uma consulta que acabou de falhar é um dos principais casos de uso.
Escopo de sessão por interface
- Conexões nativas/TCP (
clickhouse-client, drivers) eclickhouse-local: a sessão é a conexão, portanto o histórico acumula todas as consultas da conexão, incluindo invocações do cliente com múltiplas consultas. - HTTP com o parâmetro
session_id: o histórico persiste entre as requisições que passam o mesmosession_id, até que a sessão expire. - HTTP sem
session_id: cada requisição é uma sessão própria, portanto a tabela mostra apenas a consulta atual.
Tamanho do histórico
O histórico é um buffer circular limitado pela configuração de sessãosession_query_ids_history_size (padrão 1000); quando o histórico excede esse tamanho, as entradas mais antigas são removidas primeiro. Definir o valor como 0 desativa o registro; as entradas registradas anteriormente permanecem na tabela até serem truncadas ou removidas.
A configuração é lida no início da consulta, antes de ela ser convertida, portanto uma cláusula SETTINGS na própria consulta não influencia se aquela consulta será registrada; em vez disso, use SET, um parâmetro de URL HTTP ou um perfil de configurações.
TRUNCATE
TRUNCATE TABLE system.session_query_ids limpa o histórico da sessão atual. O contador de sequência não é redefinido, portanto os valores de sequence_number nunca são reutilizados dentro de uma sessão.
Colunas
sequence_number(UInt64) — Posição da consulta na sessão, monotonicamente crescente.query_id(String) — O id da consulta; pode ser usado em um join comsystem.query_log.
Exemplo
Execute algumas consultas e, em seguida, obtenha seus detalhes emsystem.query_log:
system.query_log:
Veja também
- system.query_log - Detalhes das consultas executadas.
- configuração
session_query_ids_history_size.