> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# إعدادات الجلسة لـ query_plan_*

> إعدادات جلسة ClickHouse ضمن المجموعة المُنشأة query_plan_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>النوع</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>القيمة الافتراضية</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          يمكن تغييره دون إعادة التشغيل
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            ميزة تجريبية. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">تعرّف على المزيد.</a></u>
        </div>;
};

هذه الإعدادات متاحة في [system.settings](/docs/ar/reference/system-tables/settings)، وقد أُنشئت تلقائيًا من [المصدر](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="query_plan_aggregation_in_order">
  ## query\_plan\_aggregation\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.12"},{"label": "1"},{"label": "تمكين بعض إعادة الهيكلة المتعلقة بخطة الاستعلام"}]}]} />

يُبدّل تحسين التجميع بالترتيب على مستوى خطة الاستعلام.
لا يسري مفعوله إلا إذا كان الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) مضبوطًا على 1.

<Note>
  هذا إعداد مخصص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. قد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة أو قد يُزال.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_convert_any_join_to_semi_or_anti_join">
  ## query\_plan\_convert\_any\_join\_to\_semi\_or\_anti\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "إعداد جديد."}]}]} />

السماح بتحويل ANY JOIN إلى SEMI أو ANTI JOIN إذا كان عامل التصفية بعد JOIN يُقيَّم دائمًا إلى false بالنسبة إلى الصفوف المطابقة أو غير المطابقة

<div id="query_plan_convert_join_to_in">
  ## query\_plan\_convert\_join\_to\_in
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "إعداد جديد"}]}]} />

يسمح بتحويل `JOIN` إلى استعلام فرعي باستخدام `IN` إذا كانت أعمدة الإخراج مرتبطة بالجدول الأيسر فقط. قد يؤدي ذلك إلى نتائج غير صحيحة مع عمليات `JOIN` غير `ANY` (مثل `ALL JOIN`، وهو الإعداد الافتراضي).

<div id="query_plan_convert_outer_join_to_inner_join">
  ## query\_plan\_convert\_outer\_join\_to\_inner\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "السماح بتحويل OUTER JOIN إلى INNER JOIN إذا كانت التصفية بعد JOIN تستبعد دائمًا القيم الافتراضية"}]}]} />

السماح بتحويل `OUTER JOIN` إلى `INNER JOIN` إذا كانت التصفية بعد `JOIN` تستبعد دائمًا القيم الافتراضية

<div id="query_plan_direct_read_from_text_index">
  ## query\_plan\_direct\_read\_from\_text\_index
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "أصبح فهرس النص متاحًا الآن بشكل عام (GA)"}]}, {"id": "row-2","items": [{"label": "25.9"},{"label": "1"},{"label": "إعداد جديد."}]}]} />

يسمح بإجراء تصفية البحث النصي الكامل باستخدام فهرس النص المعكوس فقط ضمن خطة الاستعلام.

<div id="query_plan_display_internal_aliases">
  ## query\_plan\_display\_internal\_aliases
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "إعداد جديد"}]}]} />

إظهار الأسماء المستعارة الداخلية (مثل \_\_table1) في EXPLAIN PLAN بدلًا من تلك المحددة في الاستعلام الأصلي.

<div id="query_plan_enable_multithreading_after_window_functions">
  ## query\_plan\_enable\_multithreading\_after\_window\_functions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

تمكين المعالجة متعددة الخيوط بعد تقييم دوال النافذة للسماح بمعالجة التدفقات بشكل متوازٍ

<div id="query_plan_enable_optimizations">
  ## query\_plan\_enable\_optimizations
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُفعِّل أو يعطِّل تحسين الاستعلام على مستوى خطة الاستعلام.

<Note>
  هذا إعداد مخصص للمستخدمين الخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل جميع التحسينات على مستوى خطة الاستعلام
* 1 - تمكين التحسينات على مستوى خطة الاستعلام (لكن قد تظل بعض التحسينات الفردية معطلة عبر إعداداتها الخاصة)

<div id="query_plan_execute_functions_after_sorting">
  ## query\_plan\_execute\_functions\_after\_sorting
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُفعّل أو يُعطّل تحسينًا على مستوى خطة الاستعلام ينقل التعبيرات إلى ما بعد خطوات الفرز.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصّص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض استكشاف الأخطاء وإصلاحها. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد يُزال.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_filter_push_down">
  ## query\_plan\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يبدّل تحسينًا على مستوى خطة الاستعلام، بحيث يدفع عوامل التصفية إلى أسفل في خطة التنفيذ.
لا يسري مفعوله إلا إذا كانت قيمة الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصّص لمستوى الخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض استكشاف الأخطاء وإصلاحها. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_join_shard_by_pk_ranges">
  ## query\_plan\_join\_shard\_by\_pk\_ranges
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "إعداد جديد"}]}]} />

طبّق التجزئة في JOIN إذا كانت مفاتيح JOIN تتضمن بادئة من PRIMARY KEY في كلا الجدولين. وهو مدعوم لخوارزميات hash و parallel\_hash و full\_sorting\_merge. وعادةً لا يسرّع الاستعلامات، لكنه قد يقلّل من استهلاك الذاكرة.

<div id="query_plan_join_swap_table">
  ## query\_plan\_join\_swap\_table
</div>

<SettingsInfoBlock type="BoolAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "auto"},{"label": "إعداد جديد. كان يتم دائمًا اختيار الجدول الأيمن سابقًا."}]}]} />

حدِّد أي جانب من عملية join يجب أن يكون جدول البناء (ويُسمّى أيضًا الداخلي، وهو الجدول الذي يُدرَج في جدول التجزئة في `hash join`) في خطة الاستعلام. لا يتوفر هذا الإعداد إلا مع صرامة join `ALL` ومع عبارة `JOIN ON`. القيم الممكنة هي:

* 'auto': اترك للمخطِّط تحديد الجدول الذي سيُستخدم كجدول البناء.
* 'false': لا تبدّل الجداول أبدًا (الجدول الأيمن هو جدول البناء).
* 'true': بدّل الجداول دائمًا (الجدول الأيسر هو جدول البناء).

<div id="query_plan_lift_up_array_join">
  ## query\_plan\_lift\_up\_array\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُبدّل تحسينًا على مستوى خطة الاستعلام يرفع عمليات ARRAY JOIN إلى موضع أعلى في خطة التنفيذ.
ولا يسري هذا إلا إذا كانت قيمة الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) هي 1.

<Note>
  هذا إعداد مخصص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض debugging. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_lift_up_union">
  ## query\_plan\_lift\_up\_union
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُفعّل أو يُعطّل تحسينًا على مستوى خطة الاستعلام ينقل أجزاءً فرعية أكبر من خطة الاستعلام إلى union لإتاحة مزيد من التحسينات.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصّص للمستخدمين الخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة أو قد يُزال.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_max_limit_for_join_lazy_indexing">
  ## query\_plan\_max\_limit\_for\_join\_lazy\_indexing
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1000"},{"label": "تمت إضافة إعداد جديد للتحكم في قيمة الحد الأقصى التي تتيح استخدام خطة الاستعلام لتحسين الفهرسة الكسولة في JOIN. إذا كانت القيمة صفرًا، فلا يوجد حد"}]}]} />

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

<div id="query_plan_max_limit_for_lazy_materialization">
  ## query\_plan\_max\_limit\_for\_lazy\_materialization
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "10"},{"label": "أُضيف إعداد جديد للتحكم في القيمة القصوى للحد التي تسمح باستخدام خطة الاستعلام لتحسين التجسيد الكسول. إذا كانت القيمة صفراً، فلا يوجد حد"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10000"},{"label": "زيادة الحد بعد تحسين الأداء"}]}, {"id": "row-3","items": [{"label": "25.11"},{"label": "100"},{"label": "أكثر كفاءة"}]}]} />

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

<div id="query_plan_max_limit_for_top_k_optimization">
  ## query\_plan\_max\_limit\_for\_top\_k\_optimization
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1000"},{"label": "إعداد جديد."}]}]} />

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

<div id="query_plan_max_optimizations_to_apply">
  ## query\_plan\_max\_optimizations\_to\_apply
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

يحدّ من إجمالي عدد عمليات التحسين المطبَّقة على خطة الاستعلام؛ راجع الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations).
وهو مفيد لتجنّب طول زمن التحسين في الاستعلامات المعقّدة.
في استعلام EXPLAIN PLAN، يتوقف تطبيق عمليات التحسين بعد الوصول إلى هذا الحد وتُعاد الخطة كما هي.
أما في تنفيذ الاستعلام العادي، فإذا تجاوز العدد الفعلي لعمليات التحسين هذا الإعداد، يُطرَح استثناء.

<Note>
  هذا إعداد مخصّص للمستخدمين الخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

<div id="query_plan_max_set_size_for_projection_match">
  ## query\_plan\_max\_set\_size\_for\_projection\_match
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "10000"},{"label": "تمت إضافة إعداد جديد يقيّد تكلفة مجموعات عبارة `IN` ذات تجزئة المحتوى في مطابِق الإسقاط (حاليًا: الإسقاط التجميعي). وتُعامَل المجموعات التي تتجاوز هذا الحد على أنها غير متطابقة. وتؤدي القيمة صفر إلى تعطيل مقارنة تجزئة المحتوى بالكامل (قيمة compatibility: لا تنجح مطابقة الإسقاط مطلقًا للعُقد التي تحتوي على مجموعات `IN`)."}]}]} />

الحد الأقصى لعدد الصفوف في مجموعة عبارة `IN` التي يحسب لها مطابِق الإسقاط تجزئات المحتوى ويقارنها عند تحديد ما إذا كانت مجموعتان متساويتين. وتُعامَل المجموعات الأكبر من ذلك على أنها غير متطابقة، ويجري تخطي الإسقاط. وتؤدي القيمة صفر إلى تعطيل مقارنة تجزئة المحتوى بالكامل: فلا تنجح مطابقة الإسقاط مطلقًا للعُقد التي تحتوي على مجموعات عبارة `IN`.

يُستخدم هذا الإعداد بواسطة مطابِق الإسقاط التجميعي (وأي مطابِق إسقاط مستقبلي يحتاج إلى مقارنة مجموعات عبارة `IN`). وتبلغ تكلفة حساب تجزئة المحتوى `O(N log N)` بالنسبة إلى عدد عناصر المجموعة؛ ويضع هذا الإعداد حدًا للتكلفة المتكبدة أثناء التخطيط عند ظهور عدد كبير من عبارات `IN` في الاستعلام أو الإسقاط.

<div id="query_plan_max_step_description_length">
  ## query\_plan\_max\_step\_description\_length
</div>

<SettingsInfoBlock type="UInt64" default_value="500" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "500"},{"label": "إعداد جديد"}]}]} />

الحد الأقصى لطول وصف الخطوة في EXPLAIN PLAN.

<div id="query_plan_merge_expression_into_join">
  ## query\_plan\_merge\_expression\_into\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "إعداد جديد. يتيح دمج خطوة Expression ضمن خطوة JOIN أثناء تحسين إعادة ترتيب JOIN."}]}]} />

يتيح دمج التعبيرات ضمن خطوة JOIN أثناء تحسين إعادة ترتيب JOIN.

<div id="query_plan_merge_expressions">
  ## query\_plan\_merge\_expressions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُفعِّل أو يعطّل تحسينًا على مستوى خطة الاستعلام يدمج عوامل التصفية المتتالية.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_merge_filter_into_join_condition">
  ## query\_plan\_merge\_filter\_into\_join\_condition
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "إضافة إعداد جديد لدمج عامل التصفية ضمن شرط الربط"}]}]} />

يسمح بدمج عامل التصفية ضمن شرط `JOIN` وتحويل `CROSS JOIN` إلى `INNER`.

<div id="query_plan_merge_filters">
  ## query\_plan\_merge\_filters
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "السماح بدمج عوامل التصفية في خطة الاستعلام"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "السماح بدمج عوامل التصفية في خطة الاستعلام. وهذا مطلوب لدعم دفع عوامل التصفية إلى الأسفل بشكل صحيح باستخدام المُحلِّل."}]}]} />

السماح بدمج عوامل التصفية في خطة الاستعلام.

<div id="query_plan_min_columns_for_join_lazy_indexing">
  ## query\_plan\_min\_columns\_for\_join\_lazy\_indexing
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "3"},{"label": "التحكم في الحد الأدنى لعدد أعمدة البيانات من الجانب الأيسر اللازمة لتفعيل تحسين الفهرسة الكسولة في JOIN"}]}]} />

التحكم في الحد الأدنى لعدد أعمدة البيانات من الجانب الأيسر اللازمة لتفعيل تحسين الفهرسة الكسولة في JOIN. تعني القيمة 0 أن هذا التحسين معطّل.

<div id="query_plan_optimize_join_order_algorithm">
  ## query\_plan\_optimize\_join\_order\_algorithm
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="JoinOrderAlgorithm" default_value="greedy" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "greedy"},{"label": "إعداد تجريبي جديد."}]}]} />

يحدّد خوارزميات ترتيب JOIN التي تجب تجربتها أثناء تحسين خطة الاستعلام. الخوارزميات التالية متاحة:

* 'greedy' - خوارزمية جشعة أساسية - تعمل بسرعة، لكنها قد لا تنتج أفضل ترتيب لعمليات JOIN
* 'dpsize' - يطبّق خوارزمية DPsize حاليًا على عمليات الربط الداخلية فقط - يأخذ في الاعتبار جميع ترتيبات JOIN الممكنة ويعثر على الترتيب الأمثل، لكنه قد يكون بطيئًا للاستعلامات التي تتضمن عددًا كبيرًا من الجداول وشروط JOIN.
* 'dpsub' - يطبّق خوارزمية DPsub التي تدعم عمليات الربط الداخلية وغير الداخلية - يأخذ في الاعتبار جميع ترتيبات JOIN الممكنة ويعثر على الترتيب الأمثل، لكنه قد يكون بطيئًا للاستعلامات التي تتضمن عددًا كبيرًا من الجداول وشروط JOIN.
* 'dphyp' - يطبّق خوارزمية DPhyp ‏(البرمجة الديناميكية عبر تقسيم الرسم البياني الفائق) حاليًا على عمليات الربط الداخلية فقط - يستكشف مساحة البحث نفسها مثل `dpsize`، لكنه يعدد فقط أزواج الرسوم البيانية الفرعية المتصلة، ما يولّد عددًا أقل من عمليات JOIN الوسيطة في رسوم JOIN البيانية المتناثرة، على حساب عدم مراعاة الضربات الديكارتية
  يمكن تحديد عدة خوارزميات في قائمة مفصولة بفواصل، مثل `dphyp,greedy`. وتُجرَّب بالترتيب؛ فإذا تعذّر على خوارزمية ما التعامل مع الاستعلام (على سبيل المثال بسبب عمليات الربط الخارجية أو المكوّنات غير المتصلة)، تُستخدَم الخوارزمية التالية كخيار احتياطي.

<div id="query_plan_optimize_join_order_limit">
  ## query\_plan\_optimize\_join\_order\_limit
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "إعداد جديد"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10"},{"label": "السماح افتراضيًا بإعادة ترتيب JOIN لعدد أكبر من الجداول"}]}]} />

حسِّن ترتيب عمليات JOIN ضمن الاستعلام الفرعي نفسه. لا يتوفر الدعم حاليًا إلا لحالات محدودة جدًا.
القيمة هي الحد الأقصى لعدد الجداول التي يمكن تحسين ترتيبها.

<div id="query_plan_optimize_join_order_max_searched_plans">
  ## query\_plan\_optimize\_join\_order\_max\_searched\_plans
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="100000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "100000"},{"label": "إعداد جديد لوضع حدّ لعدد الخطط الجزئية التي يحصيها مُحسِّن ترتيب join قبل الرجوع إلى الخوارزمية التالية."}]}]} />

الحد الأقصى لعدد الخطط الجزئية التي يمكن أن يحصيها مُحسِّن ترتيب join قبل التوقف والرجوع إلى الخوارزمية التالية في `query_plan_optimize_join_order_algorithm`.
يضع هذا حدًا زمنيًا لعملية التحسين على نحو حتمي (بغض النظر عن الزمن الفعلي المنقضي) في رسوم join البيانية الكثيفة، مثل الرسوم الكاملة أو النجمية، حيث ينمو فضاء البحث نموًا أسيًا.
اضبط القيمة على 0 لتعطيل هذا الحد. لا يؤثر ذلك في `query_plan_optimize_join_order_limit` الافتراضي، حيث يظل البحث دائمًا أقل بكثير من هذا الحد.

<div id="query_plan_optimize_join_order_randomize">
  ## query\_plan\_optimize\_join\_order\_randomize
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "إعداد جديد لعشوائية إحصاءات ترتيب JOIN لأغراض الاختبار."}]}]} />

عندما تكون القيمة غير صفرية، يستخدم مُحسِّن ترتيب JOIN قيم cardinality وNDV مُولَّدة عشوائيًا بدلًا من الإحصاءات الفعلية.
عند تعيينها إلى 1، يُولَّد random seed، وعند تعيينها إلى قيمة > 1، تُستخدم تلك القيمة مباشرةً كبذرة.
هذا مخصّص للاختبار بهدف اكتشاف الأخطاء الناتجة عن اختلاف ترتيبات JOIN.

<div id="query_plan_optimize_lazy_final">
  ## query\_plan\_optimize\_lazy\_final
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "إعداد جديد لتحسين القراءة باستخدام FINAL من ReplacingMergeTree من خلال إنشاء مجموعة من المفاتيح الأساسية واستخدامها في تحليل الفهرس"}]}]} />

تحسين القراءة باستخدام FINAL من ReplacingMergeTree من خلال إنشاء مجموعة من المفاتيح الأساسية واستخدامها في تحليل الفهرس.

<div id="query_plan_optimize_lazy_materialization">
  ## query\_plan\_optimize\_lazy\_materialization
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "أُضيف إعداد جديد لاستخدام خطة الاستعلام لتحسين التجسيد الكسول"}]}]} />

استخدم خطة الاستعلام لتحسين التجسيد الكسول.

<div id="query_plan_optimize_prewhere">
  ## query\_plan\_optimize\_prewhere
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "السماح بتمرير عامل التصفية إلى تعبير PREWHERE لوحدات التخزين المدعومة"}]}]} />

السماح بتمرير عامل التصفية إلى تعبير PREWHERE لوحدات التخزين المدعومة

<div id="query_plan_push_down_limit">
  ## query\_plan\_push\_down\_limit
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُفعِّل أو يُعطِّل تحسينًا على مستوى خطة الاستعلام ينقل عبارات LIMIT إلى أسفل ضمن خطة التنفيذ.
ولا يسري مفعوله إلا إذا كان الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) يساوي 1.

<Note>
  هذا إعداد مخصّص للخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. قد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_push_limit_by_into_sort">
  ## query\_plan\_push\_limit\_by\_into\_sort
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1"},{"label": "إعداد جديد يدفع `LIMIT BY` الخاص بكل دفق إلى مسار الفرز عندما تكون أعمدة `LIMIT BY` بادئة لـ `ORDER BY`، مما يقلل عدد الصفوف المارة عبر الدمج النهائي."}]}]} />

يُفعّل أو يعطّل تحسينًا على مستوى خطة الاستعلام لاستعلامات `ORDER BY ... LIMIT BY`. عندما تكون أعمدة `LIMIT BY` بادئة لعبارة `ORDER BY`، يطبّق كل دفق فرز متوازٍ `LIMIT BY` قبل دمج التدفقات في دفق واحد، مما يقلل عدد الصفوف التي تعالجها عملية الدمج النهائية ومراحل المسار اللاحقة. ويؤدي ذلك إلى تسريع الاستعلامات التي يستبعد فيها `LIMIT BY` نسبة كبيرة من الصفوف.

لا يسري هذا إلا إذا كانت قيمة الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_read_in_order">
  ## query\_plan\_read\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

يُفعِّل أو يعطِّل تحسين القراءة بالترتيب على مستوى خطة الاستعلام.
ولا يكون له تأثير إلا إذا كان الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) مضبوطًا على 1.

<Note>
  هذا إعداد مخصّص للخبراء، وينبغي ألا يُستخدم إلا من قِبل المطورين لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_read_in_order_through_join">
  ## query\_plan\_read\_in\_order\_through\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "إعداد جديد"}]}]} />

الحفاظ على القراءة بالترتيب من الجدول الأيسر في عمليات JOIN، بحيث يمكن للخطوات اللاحقة الاستفادة من ذلك.

<div id="query_plan_remove_redundant_distinct">
  ## query\_plan\_remove\_redundant\_distinct
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "إزالة خطوة Distinct غير الضرورية في خطة الاستعلام"}]}]} />

يُفعّل أو يُعطّل تحسينًا على مستوى خطة الاستعلام يزيل خطوات DISTINCT غير الضرورية.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصّص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض التنقيح. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_remove_redundant_sorting">
  ## query\_plan\_remove\_redundant\_sorting
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "إزالة الفرز غير الضروري في خطة الاستعلام. على سبيل المثال، خطوات الفرز المرتبطة بعبارات ORDER BY في الاستعلامات الفرعية"}]}]} />

يُفعّل تحسينًا على مستوى خطة الاستعلام يزيل خطوات الفرز غير الضرورية، مثل تلك الموجودة في الاستعلامات الفرعية.
لا يسري مفعوله إلا إذا كانت قيمة الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصص للمستخدمين الخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض استكشاف الأخطاء وإصلاحها. قد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_remove_unused_columns">
  ## query\_plan\_remove\_unused\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "إعداد جديد. يضيف تحسينًا لإزالة الأعمدة غير المستخدمة في خطة الاستعلام."}]}]} />

يُفعّل أو يعطّل تحسينًا على مستوى خطة الاستعلام يحاول إزالة الأعمدة غير المستخدمة (أعمدة الإدخال والإخراج على حدّ سواء) من خطوات خطة الاستعلام.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصّص للمستخدمين الخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد يُزال.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_reuse_storage_ordering_for_window_functions">
  ## query\_plan\_reuse\_storage\_ordering\_for\_window\_functions
</div>

**الأسماء البديلة**: `optimize_read_in_window_order`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "يُعطَّل هذا المنطق افتراضيًا."}]}]} />

يبدّل تحسينًا على مستوى خطة الاستعلام يستخدم ترتيب التخزين عند الفرز لدوال النوافذ.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصص للمستخدمين الخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_split_filter">
  ## query\_plan\_split\_filter
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<Note>
  هذا إعداد مخصّص للمستخدمين الخبراء، ويجب ألا يستخدمه سوى المطورين لأغراض استكشاف الأخطاء وإصلاحها. قد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

يؤدي إلى تمكين أو تعطيل تحسين على مستوى خطة الاستعلام يقسّم عوامل التصفية إلى تعبيرات.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_text_index_add_hint">
  ## query\_plan\_text\_index\_add\_hint
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "إعداد جديد"}]}]} />

السماح بإضافة تلميح (شرط إضافي) للتصفية يُنشأ من فهرس النص المعكوس في خطة الاستعلام.

<div id="query_plan_top_k_through_join">
  ## query\_plan\_top\_k\_through\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "إعداد جديد لتمكين تحسين على مستوى خطة الاستعلام يدفع `ORDER BY ... LIMIT n` عبر ربط LEFT/RIGHT عندما لا يشير مفتاح الفرز إلا إلى الجانب الذي يحتفظ به الربط."}]}]} />

يُبدّل تحسينًا على مستوى خطة الاستعلام يدفع `ORDER BY ... LIMIT n` إلى أسفل عبر join عندما لا يشير مفتاح الفرز إلا إلى الأعمدة في الجانب الذي يحتفظ به join ‏(LEFT/RIGHT). ويقيّد عدد الصفوف التي يجب أن ينتجها إدخال الجانب الذي يحتفظ به الربط قبل تنفيذ الربط.
لا يسري مفعوله إلا إذا كان الإعداد [query\_plan\_enable\_optimizations](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) يساوي 1.

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين

<div id="query_plan_try_use_vector_search">
  ## query\_plan\_try\_use\_vector\_search
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "إعداد جديد."}]}]} />

يتحكم هذا الإعداد في تفعيل تحسين على مستوى خطة الاستعلام يحاول استخدام فهرس تشابه المتجهات.
ولا يسري مفعوله إلا إذا كانت قيمة الإعداد [`query_plan_enable_optimizations`](/docs/ar/reference/settings/session-settings/query-plan#query_plan_enable_optimizations) تساوي 1.

<Note>
  هذا إعداد مخصّص للمستخدمين الخبراء، ويجب ألا يُستخدم إلا لأغراض استكشاف الأخطاء وإصلاحها من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد تتم إزالته.
</Note>

القيم الممكنة:

* 0 - تعطيل
* 1 - تمكين
