Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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

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

max_streams_for_files_processing_in_cluster_functions

النوع
UInt64
القيمة الافتراضية
0
سجل الإصدارات
الإصدارالقيمة الافتراضيةالتعليق
25.120إضافة إعداد جديد يتيح تقييد عدد التدفقات لمعالجة الملفات في *دوال الجدول Cluster*

إذا لم تكن القيمة صفراً، فسيتم تقييد عدد خيوط التنفيذ التي تقرأ البيانات من الملفات في دوال الجدول Cluster.

max_streams_for_merge_tree_reading

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

إذا لم تكن القيمة صفراً، فسيُحدَّد عدد تدفقات القراءة لجدول MergeTree.

max_streams_for_union_step

النوع
UInt64
القيمة الافتراضية
0
سجل الإصدارات
الإصدارالقيمة الافتراضيةالتعليق
26.50إعداد جديد لتقييد عدد تدفقات البيانات النشطة بالتزامن في خطوة UNION لتقليل ذروة استخدام الذاكرة.

يقيّد عدد تدفقات البيانات النشطة بالتزامن في خطوة UNION (وينطبق ذلك على كلٍّ من UNION ALL وUNION DISTINCT، لأن UNION DISTINCT يُنفَّذ عبر خطوة UNION ALL تليها خطوة DISTINCT). عندما يحتوي استعلام UNION على عدد كبير من الاستعلامات الفرعية، فإنها تفتح جميعًا مخازن القراءة المؤقتة الخاصة بها في الوقت نفسه، مما يؤدي إلى استهلاك ذاكرة يتناسب مع عدد الاستعلامات الفرعية. يُدرج هذا الإعداد معالجات Concat لتضييق خط الأنابيب بحيث لا يكون هناك أكثر من هذا العدد من التدفقات النشطة في الوقت نفسه، مما يقلل ذروة الذاكرة بشكل كبير. والحد الفعلي هو القيمة الصغرى بين هذه القيمة وmax_threads * max_streams_for_union_step_to_max_threads_ratio (إذا كانت أيٌّ منهما تساوي 0 فهذا يعني تجاهلها). وعندما تكون كلتاهما 0، لا يُطبَّق أي تضييق. كذلك لا يُطبَّق هذا الحد عندما تتطلب خطة الاستعلام أن يظل كل تدفق خرج من UNION مرتَّبًا بصورة مستقلة (على سبيل المثال، عند تطبيق تحسين read-in-order عبر UNION)؛ ففي هذه الحالة تكون صحة الترتيب هي الأولوية ويُتجاوز التضييق.

max_streams_for_union_step_to_max_threads_ratio

النوع
Float
القيمة الافتراضية
8
سجل الإصدارات
الإصدارالقيمة الافتراضيةالتعليق
26.58إعداد جديد: يُحتسب الحد الأقصى للتدفقات النشطة بالتزامن في خطوة UNION على أنه min(max_streams_for_union_step, max_threads * max_streams_for_union_step_to_max_threads_ratio)، ويؤدي ضبط أيٍّ منهما على 0 إلى تعطيل هذا القيد.

تحدّد هذه النسبة، عند ضربها في max_threads، حدًا أقصى لعدد التدفقات النشطة بالتزامن في خطوة UNION (وينطبق ذلك على كلٍّ من UNION ALL وUNION DISTINCT). والحد الفعلي هو أصغر قيمة بين هذه القيمة المحسوبة وmax_streams_for_union_step (وإذا كانت قيمة أيٍّ منهما 0، فسيتم تجاهلها). على سبيل المثال، إذا كان max_threads = 8 وتم ضبط هذه النسبة على 1، فسيكون الحد الأقصى لعدد التدفقات النشطة 8. اضبطها على 0 لتعطيل هذا الحد المستند إلى النسبة. وكما هو الحال مع max_streams_for_union_step، لا يُطبَّق هذا الحد عندما تتطلب خطة الاستعلام أن يظل كل تدفق خرج من UNION مرتبًا على حدة.

max_streams_multiplier_for_merge_tables

النوع
Float
القيمة الافتراضية
5

اطلب عددًا أكبر من التدفقات عند القراءة من Merge table. ستُوزَّع التدفقات عبر الجداول التي يستخدمها Merge table. يتيح ذلك توزيع العمل بشكل أكثر توازنًا عبر خيوط التنفيذ، ويكون مفيدًا بشكل خاص عندما تختلف هذه الجداول في الحجم.

max_streams_to_max_threads_ratio

النوع
Float
القيمة الافتراضية
1

يسمح لك باستخدام عدد من المصادر يفوق عدد خيوط التنفيذ، لتوزيع العمل بينها بصورة أكثر توازنًا. ويُفترض أن هذا حل مؤقت، إذ سيكون من الممكن مستقبلًا جعل عدد المصادر مساويًا لعدد خيوط التنفيذ، على أن يختار كل مصدر العمل المتاح له ديناميكيًا.

Navigation