> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Системная таблица, содержащая идентификаторы запросов, выполненных в текущем сеансе.

# system.session_query_ids

## Описание

Содержит идентификаторы запросов, выполненных в текущем сеансе, в порядке выполнения. Используйте эту таблицу, чтобы найти «запросы, которые я только что выполнил» в [`system.query_log`](/docs/ru/reference/system-tables/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](/docs/ru/reference/data-types/int-uint)) — позиция запроса в сеансе, монотонно возрастает.
* `query_id` ([String](/docs/ru/reference/data-types/string)) — идентификатор запроса; может использоваться для JOIN с `system.query_log`.

## Пример

Выполните несколько запросов, а затем получите сведения о них из [`system.query_log`](/docs/ru/reference/system-tables/query_log):

```sql theme={null}
SELECT 1 FORMAT Null;
SELECT 2 FORMAT Null;

SELECT * FROM system.session_query_ids;
```

```text theme={null}
┌─sequence_number─┬─query_id─────────────────────────────┐
│               1 │ 4c9e97a3-b806-4a5c-9a94-5a614c3d0b3f │
│               2 │ 8f9a2f59-30d3-4f8e-b3a1-6a0c1a4d3e2b │
│               3 │ f2b1c4d8-7e6a-4b5c-8d9e-0a1b2c3d4e5f │
└─────────────────┴──────────────────────────────────────┘
```

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

```sql theme={null}
SYSTEM FLUSH LOGS query_log;

SELECT query_id, type, query, query_duration_ms
FROM system.query_log
WHERE query_id IN (SELECT query_id FROM system.session_query_ids)
ORDER BY event_time_microseconds;
```

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

* [system.query\_log](/docs/ru/reference/system-tables/query_log) — сведения о выполненных запросах.
* настройка `session_query_ids_history_size`.
