> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

> إعدادات جلسة ClickHouse ضمن المجموعة المُولَّدة distributed_plan_*.

export const PrivatePreviewBadge = () => {
  return <div className="privatePreviewBadge">
            <div className="privatePreviewIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M5.33301 6.66667V4.66667V4.66667C5.33301 3.194 6.52701 2 7.99967 2V2C9.47234 2 10.6663 3.194 10.6663 4.66667V4.66667V6.66667" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path d="M8.00033 9.33337V11.3334" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path fillRule="evenodd" clipRule="evenodd" d="M11.333 14H4.66634C3.92967 14 3.33301 13.4033 3.33301 12.6666V7.99996C3.33301 7.26329 3.92967 6.66663 4.66634 6.66663H11.333C12.0697 6.66663 12.6663 7.26329 12.6663 7.99996V12.6666C12.6663 13.4033 12.0697 14 11.333 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'معاينة خاصة'}
        </div>;
};

export const ExperimentalBadge = () => {
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#experimental-features" 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>
            ميزة تجريبية
        </a>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["الإصدار", "القيمة الافتراضية", "التعليق"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        سجل الإصدارات
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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>;
};

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

## distributed\_plan\_default\_reader\_bucket\_count

<ExperimentalBadge />

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

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

العدد الافتراضي للمهام اللازمة للقراءة المتوازية في استعلام موزّع. تُوزَّع المهام عبر النسخ المتماثلة.
يستخدم المخطِّط الموزّع القائم على القواعد هذا الإعداد. ويختار محسن قائم على التكلفة مدى التوزيع للقراءة استنادًا إلى التكلفة المقدّرة، ولا يستخدم هذا الإعداد.

## distributed\_plan\_default\_shuffle\_join\_bucket\_count

<ExperimentalBadge />

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

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

العدد الافتراضي للحاويات لعملية distributed shuffle-hash-join.
يستخدمه مخطط موزع قائم على القواعد. يحدد المُحسِّن القائم على التكلفة درجة التشعّب بناءً على التكلفة المقدّرة، ولا يستخدم هذا الإعداد.

## distributed\_plan\_execute\_locally

<ExperimentalBadge />

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

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

شغّل جميع مهام خطة الاستعلام الموزعة محليًا. هذا مفيد للاختبار وتصحيح الأخطاء.

## distributed\_plan\_fallback\_to\_local\_execution

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "1"},{"label": "إعداد جديد للرجوع إلى التنفيذ المحلي عند تعذّر توزيع الخطة (لا يسري مفعوله إلا مع `make_distributed_plan`)."}]}]} />

عندما تحتوي خطة الاستعلام على خطوة لا تدعم التنفيذ الموزَّع، يُسجَّل السبب ويُنفَّذ الاستعلام على العقدة البادئة بدلاً من إطلاق استثناء. عطّل هذا الإعداد للحصول على استثناء بدلاً من ذلك.

لا يسري مفعوله إلا عند تفعيل `make_distributed_plan` (معاينة خاصة).

## distributed\_plan\_force\_exchange\_kind

<ExperimentalBadge />

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

افرض نوع عوامل Exchange المحدد بين مراحل الاستعلام الموزّع.

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

* '' - لا تفرض أي نوع من عوامل Exchange، واترك للمُحسِّن اختيار ذلك،
* 'Persisted' - استخدم ملفات مؤقتة في تخزين الكائنات،
* 'Streaming' - بثّ بيانات exchange عبر الشبكة.

## distributed\_plan\_force\_shuffle\_aggregation

<ExperimentalBadge />

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

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

استخدم استراتيجية تجميع Shuffle بدلًا من PartialAggregation + Merge ضمن خطة الاستعلام الموزعة.
يُتجاهل هذا الإعداد عندما لا تستطيع استراتيجية Shuffle إنتاج نتيجة صحيحة، على سبيل المثال مع `GROUPING SETS` أو عندما يجب أن ينتج التجميع نتائج مرتبة حسب حاوية.

## distributed\_plan\_max\_rows\_to\_broadcast

<ExperimentalBadge />

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

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

الحد الأقصى لعدد الصفوف لاستخدام broadcast join بدلًا من shuffle join ضمن خطة الاستعلام الموزعة.
آلية استدلالية للمخطط الموزع القائم على القواعد. عند تمكين المُحسِّن القائم على التكلفة، يُحدَّد الاختيار بين broadcast وshuffle بناءً على التكلفة المقدّرة، ولا يكون لهذا الإعداد أي تأثير.

## distributed\_plan\_optimize\_exchanges

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

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

يزيل عمليات التبادل غير الضرورية في خطة الاستعلام الموزعة. عطِّله لأغراض تصحيح الأخطاء.

## distributed\_plan\_prefer\_replicas\_over\_workers

<PrivatePreviewBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "إعداد جديد لإجراء تسلسل للخطة الموزعة على النسخ المتماثلة"}]}]} />

يُجري تسلسلًا لخطة الاستعلام الموزعة لتنفيذها على النسخ المتماثلة.

## distributed\_plan\_read\_in\_order

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "إعداد جديد لتفعيل تحسين القراءة بالترتيب لـ `ORDER BY` في خطة استعلام موزعة، بحيث تتجاوز القراءة المرتبة لمفتاح فرز الجدول عملية الفرز وتتوقف مبكرًا. يكون معطّلًا افتراضيًا: لا تكون آمنة حاليًا إلا البنى التي لا يبقى فيها أي تبادل بين القراءة والفرز."}]}]} />

يتيح تحسين القراءة بالترتيب لـ `ORDER BY` في خطة استعلام موزعة، بحيث تتجاوز القراءة المرتبة لمفتاح فرز
الجدول عملية الفرز وتتوقف مبكرًا بدلًا من الفحص والفرز.

يكون معطّلًا افتراضيًا: إذ تفترض إعادة الكتابة التي توزّع عملية الفرز أن عملية الفرز التي تغلّفها لا تعتمد على كون
مدخلاتها مرتبة مسبقًا، وقد تُغذّى عملية فرز تعتمد على ذلك بصفوف تمر عبر تبادل لا يحافظ على الترتيب. لا تكون
آمنة حاليًا إلا البنى التي لا يبقى فيها أي تبادل بين القراءة والفرز.

## distributed\_plan\_workers\_num

<PrivatePreviewBadge />

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

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

عدد العمّال عديمي الحالة الذين سيُستخدمون لتنفيذ هذا الاستعلام. تؤدي القيمة صفر إلى تعطيل تخصيص العمّال عديمي الحالة لخطط التنفيذ الموزعة.

## distributed\_plan\_workers\_provisioning\_timeout\_ms

<PrivatePreviewBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "10000"},{"label": "إعداد جديد يحدّد مدة انتظار الاستعلام حتى تصبح العاملات عديمات الحالة المستأجَرة قابلة للوصول قبل التنفيذ."}]}, {"id": "row-2","items": [{"label": "26.8"},{"label": "10000"},{"label": "إعداد جديد يحدّد مدة انتظار الاستعلام حتى تصبح العاملات عديمات الحالة المستأجَرة قابلة للوصول قبل التنفيذ؛ ضبط `compatibility` على أقل من 26.8 يستعيد السلوك السابق دون انتظار."}]}]} />

إجمالي الوقت المنقضي، بالمللي ثانية، الذي قد يقضيه الاستعلام في تجهيز العاملات عديمات الحالة قبل التنفيذ: تخصيصها من خدمة الاكتشاف والتحقق من إمكانية الوصول إليها. يُحجب الاستعلام ضمن هذه المهلة إلى أن تصبح العاملات المستأجَرة جاهزة؛ وعند انتهائها، يتابع الاستعلام باستخدام العاملات التي تم التحقق منها حتى ذلك الحين، أو يفشل إذا لم تصبح أي منها متاحة. تعني القيمة صفر الانتظار خلال مرحلة التخصيص والتحقق الأولية فقط (دون إعادة محاولات).
