Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

إعدادات الجلسة لـ max_execution_*

تتوفر هذه الإعدادات في system.settings، وهي مُولَّدة تلقائيًا من الشفرة المصدرية.

max_execution_speed

النوع
UInt64
القيمة الافتراضية
0

الحد الأقصى لعدد الصفوف التي تُنفَّذ في الثانية. يُجرى التحقق من ذلك عند كل كتلة بيانات عند انتهاء مهلة timeout_before_checking_execution_speed. إذا كانت سرعة التنفيذ مرتفعة، فستُخفَّض.

max_execution_speed_bytes

النوع
UInt64
القيمة الافتراضية
0

الحد الأقصى لعدد بايتات التنفيذ في الثانية. يُتحقَّق منه عند كل كتلة بيانات عندما تنتهي مهلة timeout_before_checking_execution_speed. إذا كانت سرعة التنفيذ مرتفعة، فستُخفَّض.

max_execution_time

النوع
ثوانٍ
القيمة الافتراضية
0

الحد الأقصى لوقت تنفيذ الاستعلام، بالثواني.

قد يكون فهم المَعلَمة max_execution_time مربكًا بعض الشيء. إذ إنها تعمل بالاعتماد على الاستيفاء وفقًا لسرعة تنفيذ الاستعلام الحالية (ويُتحكَّم في هذا السلوك بواسطة timeout_before_checking_execution_speed).

سيُوقِف ClickHouse الاستعلام إذا تجاوز وقت التنفيذ المتوقَّع القيمة المحددة في max_execution_time. افتراضيًا، تُضبط timeout_before_checking_execution_speed على 10 ثوانٍ. وهذا يعني أنه بعد 10 ثوانٍ من تنفيذ الاستعلام، سيبدأ ClickHouse في تقدير وقت التنفيذ الإجمالي. فإذا كانت max_execution_time، على سبيل المثال، مضبوطة على 3600 ثانية (ساعة واحدة)، فسينهي ClickHouse الاستعلام إذا تجاوز الوقت المقدَّر هذا الحد البالغ 3600 ثانية. وإذا ضبطت timeout_before_checking_execution_speed على 0، فسيستخدم ClickHouse الوقت الفعلي كأساس لـ max_execution_time.

إذا تجاوز وقت تشغيل الاستعلام عدد الثواني المحدد، فسيُحدَّد السلوك بواسطة timeout_overflow_mode، والتي تُضبط افتراضيًا على throw.

max_execution_time_leaf

النوع
ثوانٍ
القيمة الافتراضية
0

مشابه من حيث المعنى لـ max_execution_time، ولكنه يُطبَّق فقط على العقد الطرفية في الاستعلامات الموزعة أو البعيدة.

على سبيل المثال، إذا أردنا تقييد وقت التنفيذ على عقدة طرفية إلى 10s ولكن من دون فرض أي حد على العقدة الأصلية، فبدلاً من استخدام max_execution_time في إعدادات الاستعلام الفرعي المتداخلة:

SELECT count()
FROM cluster(cluster, view(SELECT * FROM t SETTINGS max_execution_time = 10));

يمكن استخدام max_execution_time_leaf كأحد إعدادات الاستعلام:

SELECT count()
FROM cluster(cluster, view(SELECT * FROM t)) SETTINGS max_execution_time_leaf = 10;
Navigation