> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# إعدادات الجلسة parallel_*

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

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

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Beta</span>
            </a>;
  }
  return <a href="/docs/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>ميزة Beta</span>
        </a>;
};

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

<div id="parallel_distributed_insert_select">
  ## parallel\_distributed\_insert\_select
</div>

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

يُفعّل استعلام `INSERT ... SELECT` الموزّع المتوازي.

إذا نفّذنا استعلامات `INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b` وكان كلا الجدولين يستخدمان العنقود نفسه، وكان كلاهما إما [مكرّرًا](/ar/reference/engines/table-engines/mergetree-family/replication) أو غير مكرّر، فستُعالَج هذه query محليًا على كل shard.

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

* `0` — معطّل.
* `1` — سيُنفَّذ `SELECT` على كل shard من الجدول الأساسي للمحرك الموزّع.
* `2` — سيُنفَّذ `SELECT` و`INSERT` على كل shard من/إلى الجدول الأساسي للمحرك الموزّع.

اعتبارًا من v25.4، يمكن أيضًا تنفيذ `INSERT ... SELECT` من مصدر `ReplicatedMergeTree` أو `SharedMergeTree` بالتوازي عبر النسخ المتماثلة. لتمكين ذلك:

* `parallel_distributed_insert_select = 2`
* `enable_parallel_replicas = 1`

<div id="parallel_hash_join_threshold">
  ## parallel\_hash\_join\_threshold
</div>

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

عند استخدام خوارزمية join المعتمدة على hash، تساعد هذه العتبة في تحديد ما إذا كان سيتم استخدام `hash` أو `parallel_hash` (وذلك فقط إذا كان تقدير حجم الجدول الأيمن متاحًا).
ويُستخدم الخيار الأول عندما يكون معروفًا أن حجم الجدول الأيمن أقل من هذه العتبة.

<div id="parallel_non_joined_rows_processing">
  ## parallel\_non\_joined\_rows\_processing
</div>

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

يسمح لعدة خيوط تنفيذ بمعالجة الصفوف غير المنضمّة من الجدول الأيمن بالتوازي أثناء عمليات RIGHT وFULL JOIN.
يمكن أن يسرّع ذلك مرحلة الصفوف غير المنضمّة عند استخدام خوارزمية JOIN ‏`parallel_hash` مع الجداول الكبيرة.
عند تعطيله، تُعالَج الصفوف غير المنضمّة بواسطة خيط تنفيذ واحد.

<div id="parallel_replica_offset">
  ## parallel\_replica\_offset
</div>

<BetaBadge />

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

هذا إعداد داخلي لا ينبغي استخدامه مباشرةً، ويمثل تفصيلًا تنفيذيًا لوضع «النسخ المتماثلة المتوازية». سيُضبط هذا الإعداد تلقائيًا بواسطة الخادم البادئ للاستعلامات الموزعة، بحيث يحدد فهرس النسخة المتماثلة المشاركة في معالجة الاستعلام ضمن النسخ المتماثلة المتوازية.

<div id="parallel_view_processing">
  ## parallel\_view\_processing
</div>

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

يُمكّن من الدفع إلى العروض المُلحقة بالتزامن بدلًا من بشكلٍ تسلسلي.
