Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

system.processors_profile_log

الوصف

يحتوي هذا الجدول على بيانات تنميط على مستوى المعالجات (والتي يمكنك العثور عليها في EXPLAIN PIPELINE).

الأعمدة

  • hostname (LowCardinality(String)) — اسم مضيف الخادم الذي ينفّذ الاستعلام.
  • event_date (Date) — التاريخ الذي وقع فيه الحدث.
  • event_time (DateTime) — التاريخ والوقت اللذان وقع فيهما الحدث.
  • event_time_microseconds (DateTime64(6)) — التاريخ والوقت بدقة الميكروثانية اللذان وقع فيهما الحدث.
  • id (UInt64) — معرّف المعالج.
  • parent_ids (Array(UInt64)) — معرّفات المعالجات الأصلية.
  • plan_step (UInt64) — معرّف خطوة خطة الاستعلام التي أنشأت هذا المعالج. تكون القيمة صفراً إذا لم يُضَف المعالج من أي خطوة.
  • plan_step_name (String) — اسم خطوة خطة الاستعلام التي أنشأت هذا المعالج. تكون القيمة فارغة إذا لم يُضَف المعالج من أي خطوة.
  • plan_step_description (String) — وصف خطوة خطة الاستعلام التي أنشأت هذا المعالج. تكون القيمة فارغة إذا لم يُضَف المعالج من أي خطوة.
  • plan_group (UInt64) — مجموعة المعالج إذا أُنشئ بواسطة خطوة من خطة الاستعلام. والمجموعة هي تقسيم منطقي للمعالجات المضافة من خطوة خطة الاستعلام نفسها. ولا تُستخدم المجموعة إلا لتحسين عرض نتيجة EXPLAIN PIPELINE.
  • initial_query_id (String) — معرّف الاستعلام الأوّلي في سلسلة الاستعلام نفسها.
  • query_id (String) — معرّف الاستعلام.
  • name (LowCardinality(String)) — اسم المعالج.
  • elapsed_us (UInt64) — عدد الميكروثواني التي استغرقها تنفيذ هذا المعالج.
  • input_wait_elapsed_us (UInt64) — عدد الميكروثواني التي انتظر فيها هذا المعالج البيانات (من معالج آخر).
  • output_wait_elapsed_us (UInt64) — عدد الميكروثواني التي انتظر فيها هذا المعالج لأن منفذ الإخراج كان ممتلئاً.
  • input_rows (UInt64) — عدد الصفوف التي استهلكها المعالج.
  • input_bytes (UInt64) — عدد البايتات التي استهلكها المعالج.
  • output_rows (UInt64) — عدد الصفوف التي أنتجها المعالج.
  • output_bytes (UInt64) — عدد البايتات التي أنتجها المعالج.
  • processor_uniq_id (String) — المعرّف الفريد للمعالج ضمن PIPELINE.
  • step_uniq_id (String) — المعرّف الفريد للخطوة في الخطة.

مثال

Querysql
EXPLAIN PIPELINE
SELECT sleep(1)
Responsetext
┌─name────────────────────┬─elapsed_us─┬─input_wait_elapsed_us─┬─output_wait_elapsed_us─┐
│ ExpressionTransform     │    1000497 │                  2823 │                    197 │
│ LazyOutputFormat        │         36 │               1002188 │                      0 │
│ LimitsCheckingTransform │         10 │               1002994 │                    106 │
│ NullSource              │          5 │               1002074 │                      0 │
│ NullSource              │          1 │               1002084 │                      0 │
│ SourceFromSingleChunk   │         45 │                  4736 │                1000819 │
└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘

هنا يمكنك ملاحظة ما يلي:

  • كان ExpressionTransform ينفّذ الدالة sleep(1)، لذا فإن work سيستغرق 1e6، وبالتالي elapsed_us > 1e6.
  • يحتاج SourceFromSingleChunk إلى الانتظار، لأن ExpressionTransform لا يقبل أي بيانات أثناء تنفيذ sleep(1)، لذا سيبقى في الحالة PortFull لمدة 1e6 us، وبالتالي output_wait_elapsed_us > 1e6.
  • تحتاج LimitsCheckingTransform/NullSource/LazyOutputFormat إلى الانتظار إلى أن ينفّذ ExpressionTransform الدالة sleep(1) لمعالجة النتيجة، لذا فإن input_wait_elapsed_us > 1e6.

راجع أيضًا

Navigation