Skip to main content

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” em system.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.
Consultas internas (flushes de logs do sistema e similares) não são registradas. Subconsultas que as consultas distribuídas executam em shards remotos também não são registradas - apenas a consulta que as originou aparece, na sessão do initiator.

Escopo de sessão por interface

  • Conexões nativas/TCP (clickhouse-client, drivers) e clickhouse-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 mesmo session_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ão session_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 com system.query_log.

Exemplo

Execute algumas consultas e, em seguida, obtenha seus detalhes em system.query_log:
A consulta atual é registrada no seu início, portanto aparece como a última entrada. Timestamps, status e todos os demais detalhes ficam disponíveis ao fazer join com system.query_log:

Veja também

  • system.query_log - Detalhes das consultas executadas.
  • configuração session_query_ids_history_size.
Última modificação em 26 de setembro de 2026