Описание
Содержит идентификаторы запросов, выполненных в текущем сеансе, в порядке выполнения. Используйте эту таблицу, чтобы найти «запросы, которые я только что выполнил» в 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 г.