Skip to main content

الوصف

يحتوي على معرّفات الاستعلامات المنفَّذة في الجلسة الحالية، بحسب ترتيب تنفيذها. استخدمه للعثور على “الاستعلامات التي نفّذتها للتو” في system.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) — موضع الاستعلام ضمن الجلسة، ويتزايد تزايدًا مطردًا.
  • query_id (String) — معرّف الاستعلام، ويمكن ضمّه (join) مع system.query_log.

مثال

نفِّذ بعض الاستعلامات، ثم استرجع تفاصيلها من system.query_log:
يُسجَّل الاستعلام الحالي عند بدئه، لذا يظهر بوصفه آخر إدخال. أما الطوابع الزمنية والحالة (status) وسائر التفاصيل الأخرى فتتوفّر عبر الربط (join) مع system.query_log:

See also

  • system.query_log - تفاصيل الاستعلامات المُنفَّذة.
  • الإعداد session_query_ids_history_size.
آخر تعديل في ٢٦ سبتمبر ٢٠٢٦