Skip to main content

Описание

Содержит идентификаторы запросов, выполненных в текущем сеансе, в порядке выполнения. Используйте эту таблицу, чтобы найти «запросы, которые я только что выполнил» в system.query_log, не задавая query_id на стороне клиента и не помечая запросы через log_comment. Содержимое ограничено рамками сеанса: каждый сеанс видит только свою историю, запросы других сеансов в ней никогда не появляются. Идентификатор запроса записывается в момент запуска запроса, поэтому:
  • Выполняющийся в данный момент запрос уже виден, когда он читает данные из этой таблицы.
  • Запросы, завершившиеся с ошибкой, также записываются — получение идентификатора только что упавшего запроса является одним из основных сценариев использования.
Внутренние запросы (сбросы системных логов и т. п.) не записываются. Подзапросы, которые распределённые запросы выполняют на удалённых сегментах, тоже не записываются — в сеансе инициатора отображается только инициирующий запрос.

Область действия сеанса в зависимости от интерфейса

  • Нативные/TCP-соединения (clickhouse-client, драйверы) и clickhouse-local: сеанс совпадает с соединением, поэтому история накапливается по всем запросам этого соединения, включая вызовы клиента с несколькими запросами.
  • HTTP с параметром session_id: история сохраняется между запросами, которые передают один и тот же session_id, пока сеанс не истечёт.
  • HTTP без session_id: каждый запрос — это отдельный сеанс, поэтому таблица всегда показывает только текущий запрос.

Размер истории

История представляет собой кольцевой буфер, размер которого ограничен настройкой сеанса session_query_ids_history_size (по умолчанию 1000); при превышении этого размера первыми вытесняются самые старые записи. Значение 0 отключает ведение истории; записи, сделанные ранее, остаются в таблице до их удаления командой TRUNCATE или вытеснения. Настройка считывается в начале выполнения запроса, до того как запрос будет разобран, поэтому секция SETTINGS самого запроса не влияет на то, будет ли этот запрос записан; используйте вместо этого SET, URL-параметр HTTP-запроса или профиль настроек.

TRUNCATE

TRUNCATE TABLE system.session_query_ids очищает историю текущего сеанса. Счётчик последовательности при этом не сбрасывается, поэтому значения sequence_number в рамках одного сеанса никогда не используются повторно.

Столбцы

  • sequence_number (UInt64) — позиция запроса в сеансе, монотонно возрастает.
  • query_id (String) — идентификатор запроса; может использоваться для JOIN с system.query_log.

Пример

Выполните несколько запросов, а затем получите сведения о них из system.query_log:
Текущий запрос записывается в момент его начала, поэтому он отображается последней записью. Временные метки, status и все остальные подробности можно получить, выполнив JOIN с system.query_log:

Смотрите также

  • system.query_log — сведения о выполненных запросах.
  • настройка session_query_ids_history_size.
Последнее изменение 26 сентября 2026 г.