> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> جدول نظام يحتوي على معرّفات الاستعلامات التي نُفِّذت في الجلسة الحالية.

# system.session_query_ids

## الوصف

يحتوي على معرّفات الاستعلامات المنفَّذة في الجلسة الحالية، بحسب ترتيب تنفيذها. استخدمه للعثور على "الاستعلامات التي نفّذتها للتو" في [`system.query_log`](/ar/reference/system-tables/query_log) دون الحاجة إلى تعيين `query_id` من جهة العميل أو وسم الاستعلامات بـ `log_comment`.

نطاق المحتويات محصور بالجلسة: فكل جلسة ترى سجلّها الخاص فقط، ولا تظهر فيها استعلامات الجلسات الأخرى أبدًا.

يُسجَّل معرّف الاستعلام عند *بدء* الاستعلام، وبالتالي:

* يكون الاستعلام الجاري تنفيذه حاليًا مرئيًا بالفعل عند قراءته من الجدول.
* تُسجَّل الاستعلامات الفاشلة أيضًا - فاسترجاع معرّف استعلام فشل للتو هو من حالات الاستخدام الأساسية.

لا تُسجَّل الاستعلامات الداخلية (عمليات إفراغ سجلات النظام وما شابهها)، كما لا تُسجَّل الاستعلامات الفرعية التي تنفّذها الاستعلامات الموزّعة على السيجمنتات البعيدة - إذ لا يظهر سوى الاستعلام البادئ، وذلك ضمن جلسة الجهة البادئة.

### نطاق الجلسة لكل interface

* **اتصالات Native/TCP** (`clickhouse-client`، وبرامج التشغيل) و\*\*`clickhouse-local`\*\*: الجلسة هي الاتصال نفسه، لذا يتراكم السجل عبر جميع استعلامات الاتصال، بما في ذلك استدعاءات العميل متعددة الاستعلامات.
* **HTTP مع المعامل `session_id`**: يستمر السجل عبر الطلبات التي تمرر `session_id` نفسه، إلى أن تنتهي صلاحية الجلسة.
* **HTTP بدون `session_id`**: كل طلب يمثل جلسة مستقلة بذاته، لذا لا يعرض الجدول سوى الاستعلام الحالي.

### حجم السجل

السجل عبارة عن buffer حلقي يحدّه إعداد الجلسة `session_query_ids_history_size` (القيمة الافتراضية `1000`)؛ وعندما يتجاوز السجل هذا الحجم، تُزال أقدم المدخلات أولاً. ويؤدي ضبطه على `0` إلى تعطيل التسجيل؛ أما المدخلات المسجّلة سابقاً فتبقى في الجدول إلى أن تُقتطع أو تُزال.

يُقرأ الإعداد عند بدء الاستعلام، قبل تحليله، لذا فإن عبارة `SETTINGS` ضمن الاستعلام نفسه لا تؤثر في ما إذا كان سيُسجَّل أم لا؛ استخدم بدلاً من ذلك `SET`، أو معامل URL في HTTP، أو ملف تعريف إعدادات.

### TRUNCATE

يمسح الأمر `TRUNCATE TABLE system.session_query_ids` سجل الجلسة الحالية. أما عدّاد التسلسل فلا يُعاد ضبطه، ولذلك لا تُعاد قيم `sequence_number` أبدًا داخل الجلسة نفسها.

## الأعمدة

* `sequence_number` ([UInt64](/ar/reference/data-types/int-uint)) — موضع الاستعلام ضمن الجلسة، ويتزايد تزايدًا مطردًا.
* `query_id` ([String](/ar/reference/data-types/string)) — معرّف الاستعلام، ويمكن ضمّه (join) مع `system.query_log`.

## مثال

نفِّذ بعض الاستعلامات، ثم استرجع تفاصيلها من [`system.query_log`](/ar/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;
```

## See also

* [system.query\_log](/ar/reference/system-tables/query_log) - تفاصيل الاستعلامات المُنفَّذة.
* الإعداد `session_query_ids_history_size`.
