> ## 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.

# إعدادات الجلسة الأخرى

> إعدادات جلسة ClickHouse ضمن المجموعة المُولَّدة «أخرى».

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 CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'متاح فقط في ClickHouse Cloud'}
        </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}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                ميزة Beta. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        مزيد من المعلومات.
                    </a>
                </u>
            </span>
        </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="add_http_cors_header">
  ## add\_http\_cors\_header
</div>

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

كتابة ترويسة CORS لـ HTTP.

<div id="analyze_index_with_space_filling_curves">
  ## analyze\_index\_with\_space\_filling\_curves
</div>

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

إذا كان فهرس جدول ما يتضمن منحنىً مالئًا للفراغ، مثل `ORDER BY mortonEncode(x, y)` أو `ORDER BY hilbertEncode(x, y)`، وكان الاستعلام يتضمن شروطًا على وسائطه، مثل `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`، فسيُستخدم المنحنى المالئ للفراغ في تحليل الفهرس.

<div id="analyzer_inline_views">
  ## analyzer\_inline\_views
</div>

<ExperimentalBadge />

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

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

عند تمكينه، يستبدل analyzer طرق العرض العادية (غير المُجسَّدة وغير المعلَّمة بمعلمات) بالاستعلامات الفرعية التي تعرّفها، مما يتيح تحسينات عابرة للحدود مثل دفع عبارات التصفية وتشذيب الأعمدة.

<div id="any_join_distinct_right_table_keys">
  ## any\_join\_distinct\_right\_table\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.14"},{"label": "0"},{"label": "تعطيل ANY RIGHT وANY FULL JOIN افتراضيًا لتجنب عدم الاتساق"}]}]} />

يُمكّن السلوك القديم لخادم ClickHouse في عمليات `ANY INNER|LEFT JOIN`.

<Note>
  استخدم هذا الإعداد فقط للتوافق مع الإصدارات السابقة إذا كانت حالات الاستخدام لديك تعتمد على سلوك `JOIN` القديم.
</Note>

عندما يكون السلوك القديم مُمكّنًا:

* لا تتطابق نتائج العمليتين `t1 ANY LEFT JOIN t2` و`t2 ANY RIGHT JOIN t1` لأن ClickHouse يستخدم منطق ربط مفاتيح الجداول من اليسار إلى اليمين بعلاقة متعدد إلى واحد.
* تحتوي نتائج عمليات `ANY INNER JOIN` على جميع صفوف الجدول الأيسر، كما هو الحال في عمليات `SEMI LEFT JOIN`.

عندما يكون السلوك القديم معطّلًا:

* تتطابق نتائج العمليتين `t1 ANY LEFT JOIN t2` و`t2 ANY RIGHT JOIN t1` لأن ClickHouse يستخدم منطقًا يوفّر ربطًا للمفاتيح بعلاقة واحد إلى متعدد في عمليات `ANY RIGHT JOIN`.
* تحتوي نتائج عمليات `ANY INNER JOIN` على صف واحد لكل مفتاح من الجدولين الأيسر والأيمن.

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

* 0 — السلوك القديم معطّل.
* 1 — السلوك القديم مُمكّن.

انظر أيضًا:

* [صرامة JOIN](/docs/ar/reference/statements/select/join#settings)

<div id="archive_adaptive_buffer_max_size_bytes">
  ## archive\_adaptive\_buffer\_max\_size\_bytes
</div>

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

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

يحدّد الحجم الأقصى للمخزن المؤقت المتكيّف المستخدم عند الكتابة إلى ملفات الأرشيف (على سبيل المثال، أرشيفات tar

<div id="arrow_flight_request_descriptor_type">
  ## arrow\_flight\_request\_descriptor\_type
</div>

<SettingsInfoBlock type="ArrowFlightDescriptorType" default_value="path" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "path"},{"label": "إعداد جديد. نوع الواصف المستخدم لطلبات Arrow Flight: ‏'path' أو ‏'command'. يتطلب Dremio القيمة ‏'command'."}]}]} />

نوع الواصف المستخدم لطلبات Arrow Flight. يرسل ‏'path' اسم مجموعة البيانات كواصف path. ويرسل ‏'command' استعلام SQL كواصف command (وهو مطلوب لـ Dremio).

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

* 'path' — استخدم FlightDescriptor::Path (الافتراضي، ويعمل مع معظم خوادم Arrow Flight)
* 'command' — استخدم FlightDescriptor::Command مع استعلام SELECT (مطلوب لـ Dremio)

<div id="backup_slow_all_threads_after_retryable_s3_error">
  ## backup\_slow\_all\_threads\_after\_retryable\_s3\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "إعداد جديد"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "0"},{"label": "إعداد جديد"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "تعطيل الإعداد افتراضيًا"}]}]} />

عند ضبطه على `true`، يتم إبطاء جميع الخيوط التي تنفّذ طلبات S3 إلى نقطة نهاية النسخة الاحتياطية نفسها
إذا واجه أي طلب S3 واحد خطأ S3 قابلاً لإعادة المحاولة، مثل 'Slow Down'.
وعند ضبطه على `false`، يتعامل كل خيط مع التراجع بين محاولات طلبات S3 بشكل مستقل عن الخيوط الأخرى.

<div id="cache_warmer_threads">
  ## cache\_warmer\_threads
</div>

<CloudOnlyBadge />

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

لا يكون لهذا الإعداد تأثير إلا في ClickHouse Cloud. عدد الخيوط الخلفية المخصّصة لتنزيل أجزاء البيانات الجديدة استباقيًا إلى ذاكرة التخزين المؤقت لنظام الملفات عند تمكين [cache\_populated\_by\_fetch](/docs/ar/reference/settings/merge-tree-settings#cache_populated_by_fetch). استخدم القيمة صفر للتعطيل.

<div id="calculate_text_stack_trace">
  ## calculate\_text\_stack\_trace
</div>

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

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

<div id="cancel_http_readonly_queries_on_client_close">
  ## cancel\_http\_readonly\_queries\_on\_client\_close
</div>

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

يلغي استعلامات HTTP للقراءة فقط (مثل `SELECT`) عند إغلاق العميل للاتصال دون انتظار الاستجابة.

القيمة الافتراضية في Cloud: `1`.

<div id="checksum_on_read">
  ## checksum\_on\_read
</div>

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

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

<div id="connection_pool_max_wait_ms">
  ## connection\_pool\_max\_wait\_ms
</div>

<SettingsInfoBlock type="مللي ثانية" default_value="0" />

زمن الانتظار بالمللي ثانية للحصول على اتصال عندما يكون مجمّع الاتصالات ممتلئًا.

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

* عدد صحيح موجب.
* 0 — مهلة انتظار لا نهائية.

<div id="connections_with_failover_max_tries">
  ## connections\_with\_failover\_max\_tries
</div>

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

الحد الأقصى لعدد محاولات الاتصال بكل نسخة متماثلة لمحرك الجدول Distributed.

<div id="convert_query_to_cnf">
  ## convert\_query\_to\_cnf
</div>

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

عند ضبطه على `true`، سيُحوَّل استعلام `SELECT` إلى الصيغة العادية الاقترانية (CNF). في بعض الحالات، قد يؤدي إعادة كتابة الاستعلام بصيغة CNF إلى تنفيذ أسرع (راجع [مشكلة Github](https://github.com/ClickHouse/ClickHouse/issues/11749) للاطلاع على الشرح).

على سبيل المثال، لاحظ كيف لا يُعدَّل استعلام `SELECT` التالي (وهو السلوك الافتراضي):

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = false;
```

الناتج هو:

```response theme={null}
┌─explain────────────────────────────────────────────────────────┐
│ SELECT x                                                       │
│ FROM                                                           │
│ (                                                              │
│     SELECT number AS x                                         │
│     FROM numbers(20)                                           │
│     WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15)) │
│ ) AS a                                                         │
│ WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))     │
│ SETTINGS convert_query_to_cnf = 0                              │
└────────────────────────────────────────────────────────────────┘
```

لنضبط `convert_query_to_cnf` على `true` ونرَ ما الذي سيتغير:

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = true;
```

لاحظ أن عبارة `WHERE` أُعيدت كتابتها إلى صيغة CNF، لكن مجموعة النتائج هي نفسها تمامًا — فالمنطق البولياني لم يتغير:

```response theme={null}
┌─explain───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ SELECT x                                                                                                              │
│ FROM                                                                                                                  │
│ (                                                                                                                     │
│     SELECT number AS x                                                                                                │
│     FROM numbers(20)                                                                                                  │
│     WHERE ((x <= 15) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x >= 10) OR (x >= 1)) │
│ ) AS a                                                                                                                │
│ WHERE ((x >= 10) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x <= 15) OR (x <= 5))     │
│ SETTINGS convert_query_to_cnf = 1                                                                                     │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

القيم الممكنة: true, false

<div id="count_matches_stop_at_empty_match">
  ## count\_matches\_stop\_at\_empty\_match
</div>

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

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

يتوقف العدّ بمجرد أن يطابق النمط طولًا صفريًا في الدالة `countMatches`.

<div id="cross_to_inner_join_rewrite">
  ## cross\_to\_inner\_join\_rewrite
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "2"},{"label": "فرض إعادة كتابة الربط بالفاصلة إلى INNER JOIN"}]}]} />

استخدم INNER JOIN بدلًا من الربط بالفاصلة/‏CROSS JOIN إذا كانت هناك تعبيرات ربط في قسم WHERE. القيم: 0 - بدون إعادة كتابة، 1 - طبّق ذلك عند الإمكان على الربط بالفاصلة/‏CROSS JOIN، 2 - افرض إعادة كتابة جميع عمليات الربط بالفاصلة، وCROSS JOIN عند الإمكان

<div id="data_type_default_nullable">
  ## data\_type\_default\_nullable
</div>

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

يسمح بأن تكون أنواع البيانات في تعريفات الأعمدة التي لا تتضمن مُعدِّلات صريحة [NULL or NOT NULL](/docs/ar/reference/statements/create/table#null-or-not-null-modifiers) من النوع [Nullable](/docs/ar/reference/data-types/nullable).

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

* 1 — تُضبط أنواع البيانات في تعريفات الأعمدة على `Nullable` افتراضيًا.
* 0 — تُضبط أنواع البيانات في تعريفات الأعمدة على أنها غير `Nullable` افتراضيًا.

<div id="decimal_check_overflow">
  ## decimal\_check\_overflow
</div>

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

التحقق من تجاوز السعة في عمليات الحساب/المقارنة العشرية

<div id="deduplicate_blocks_in_dependent_materialized_views">
  ## deduplicate\_blocks\_in\_dependent\_materialized\_views
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "تمكين إزالة التكرار للعروض المادية التابعة افتراضيًا."}]}]} />

يُفعِّل أو يعطِّل التحقق من إزالة التكرار للعروض المادية التي تتلقى البيانات من جداول Replicated\*.

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

* 0 — معطّل.
* 1 — مفعّل.

عند التمكين، يُجري ClickHouse إزالة التكرار للكتل في العروض المادية التي تعتمد على جداول Replicated\*.
يفيد هذا الإعداد في ضمان عدم احتواء العروض المادية على بيانات مكررة عند إعادة محاولة عملية الإدراج بسبب حدوث فشل.

**انظر أيضًا**

* [معالجة NULL في عوامل التشغيل `IN`](/docs/ar/concepts/features/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views)

<div id="defer_partition_pruning_after_final">
  ## defer\_partition\_pruning\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "إعداد أُضيف حديثًا في 26.5 لضبط سلوك تقليم الأقسام في FINAL، والذي طُرح بصمت في 26.3 (https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242). وقد سُجِّل التغيير الدلالي المهم ضمن قسم 26.3 بحيث إن `compatibility = '26.2'` يتراجع عنه؛ وهذا الإدخال موجود لكي يقبل فحص الترقية من 26.4 الاسم المُضاف حديثًا."}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "1"},{"label": "يضبط هذا الإعداد تخطّي المُخطِّط في FINAL لتقليم الأقسام بشكل غير مشروط عندما لا يكون عمود مفتاح القسم ضمن مفتاح الفرز. وقد طُرح تغيير السلوك نفسه بصمت في 26.3 عبر https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242؛ وهذا الإدخال يوثّقه بأثر رجعي بحيث إن `compatibility = '26.2'` يستعيد السلوك السابق للتراجع (0 = تقليم قبل FINAL، أسرع؛ 1 = تأجيل التقليم، آمن من ناحية الصحة)." }]}]} />

عند التمكين (وهو الإعداد الافتراضي)، يتم تخطّي تقليم الأقسام في استعلامات `FINAL` على الجداول التي لا تكون
أعمدة مفتاح القسم فيها جزءًا من مفتاح الفرز. وهذا هو السلوك الآمن من ناحية الصحة
الذي أُدخل في 26.3: فقد يحتاج `FINAL` إلى إزالة تكرار الصفوف التي تشترك في
مفتاح أساسي واحد لكنها موجودة في أقسام مختلفة، وسيؤدي تقليم الأقسام إلى استبعاد
مثل هذه الصفوف بصمت من مدخلات إزالة التكرار.

عند التعطيل، يُطبَّق تقليم الأقسام حتى مع `FINAL`، مما يعيد سلوك ما قبل 26.3.
وقد يكون هذا أسرع بكثير للاستعلامات التي تحتوي على شروط `WHERE` على
عمود القسم، لكنه يكون صحيحًا فقط عندما يستحيل وجود صفوف لها المفتاح الأساسي نفسه
في أقسام مختلفة — مثل جداول سجل الأحداث التي يُحدَّد فيها عمود القسم وقت insert
ولا يتغير مطلقًا.

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

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

* 0 — طبّق تقليم الأقسام قبل `FINAL` (سلوك ما قبل 26.3، أسرع لكنه غير آمن في الحالة العامة).
* 1 — أجّل تقليم الأقسام إلى ما بعد `FINAL` (الافتراضي، آمن من ناحية الصحة).

<div id="describe_compact_output">
  ## describe\_compact\_output
</div>

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

إذا كانت القيمة true، فأدرِج فقط أسماء الأعمدة وأنواعها في نتيجة الاستعلام DESCRIBE

<div id="dialect">
  ## اللهجة
</div>

<SettingsInfoBlock type="Dialect" default_value="clickhouse" />

اللهجة التي ستُستخدم لتحليل الاستعلام

<div id="discard_query_data">
  ## discard\_query\_data
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "إعداد جديد لتجاوز إرسال صفوف نتيجة الاستعلام إلى العميل عبر بروتوكول TCP الأصلي."}]}]} />

إذا كان مُمكّنًا، يتجاوز الخادم إرسال صفوف نتيجة الاستعلام إلى العميل. ومع ذلك، يظل الاستعلام يُنفَّذ ويُسجَّل بالكامل على الخادم، كما يواصل العميل تلقي الحزم الأخرى.

يُستخدم لحركة المرور الظلية، واختبارات الأداء، والتشويش.

ليس له أي تأثير على الاستعلامات الثانوية.

يؤثر فقط في بروتوكول TCP الأصلي.

<div id="distinct_overflow_mode">
  ## distinct\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

يحدّد ما يحدث عند تجاوز كمية البيانات أحد الحدود.

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

* `throw`: رفع استثناء (الافتراضي).
* `break`: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن
  بيانات المصدر قد نفدت.

<div id="do_not_merge_across_partitions_select_final">
  ## do\_not\_merge\_across\_partitions\_select\_final
</div>

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

حسّن أداء استعلامات FINAL بتجنّب عمليات الدمج عبر أقسام مختلفة.

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

<div id="dynamic_throw_on_type_mismatch">
  ## dynamic\_throw\_on\_type\_mismatch
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "إعداد جديد للتحكم في سلوك عدم تطابق الأنواع في التنفيذ الافتراضي لـ Dynamic"}]}]} />

عند تطبيق دالة على عمود [Dynamic](/docs/ar/reference/data-types/dynamic) باستخدام التنفيذ الافتراضي،
يحدد هذا الإعداد ما يحدث للصفوف التي يكون نوعها الفعلي غير متوافق مع الدالة:

* `true` (الافتراضي) — طرح استثناء.
* `false` — إرجاع `NULL` لتلك الصفوف بدلًا من ذلك.

<div id="enforce_strict_identifier_format">
  ## enforce\_strict\_identifier\_format
</div>

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

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

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

<div id="engine_url_skip_empty_files">
  ## engine\_url\_skip\_empty\_files
</div>

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

يفعّل أو يعطّل تخطي الملفات الفارغة في الجداول التي تستخدم محرك [URL](/docs/ar/reference/engines/table-engines/special/url).

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

* 0 — يُطلق `SELECT` استثناءً إذا كان الملف الفارغ غير متوافق مع التنسيق المطلوب.
* 1 — يعيد `SELECT` نتيجة فارغة للملف الفارغ.

<div id="exact_rows_before_limit">
  ## exact\_rows\_before\_limit
</div>

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

عند تفعيل هذا الإعداد، سيقدّم ClickHouse قيمة دقيقة لإحصائية rows\_before\_limit\_at\_least، ولكن سيكون ذلك على حساب ضرورة قراءة البيانات التي تسبق الحد بالكامل

<div id="except_default_mode">
  ## except\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

يضبط الوضع الافتراضي في استعلام EXCEPT. القيم الممكنة: سلسلة فارغة، 'ALL'، 'DISTINCT'. إذا كانت فارغة، فسيؤدي الاستعلام من دون وضع إلى إطلاق استثناء.

<div id="exclude_materialize_skip_indexes_on_insert">
  ## exclude\_materialize\_skip\_indexes\_on\_insert
</div>

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

يستثني فهارس التخطي المحددة من بنائها وتخزينها أثناء عمليات INSERT. وستظل فهارس التخطي المستثناة تُبنى وتُخزَّن [أثناء عمليات الدمج](/docs/ar/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) أو من خلال استعلام
[MATERIALIZE INDEX](/docs/ar/reference/statements/alter/skipping-index#materialize-index) صريح.

لا يكون له أي تأثير إذا كانت [materialize\_skip\_indexes\_on\_insert](/docs/ar/reference/settings/session-settings/materialize#materialize_skip_indexes_on_insert) مضبوطة على false.

مثال:

```sql theme={null}
CREATE TABLE tab
(
    a UInt64,
    b UInt64,
    INDEX idx_a a TYPE minmax,
    INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple();

SET exclude_materialize_skip_indexes_on_insert='idx_a'; -- idx_a will be not be updated upon insert
--SET exclude_materialize_skip_indexes_on_insert='idx_a, idx_b'; -- neither index would be updated on insert

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- only idx_b is updated

-- since it is a session setting it can be set on a per-query level
INSERT INTO tab SELECT number, number / 50 FROM numbers(100, 100) SETTINGS exclude_materialize_skip_indexes_on_insert='idx_b';

ALTER TABLE tab MATERIALIZE INDEX idx_a; -- this query can be used to explicitly materialize the index

SET exclude_materialize_skip_indexes_on_insert = DEFAULT; -- reset setting to default
```

<div id="execute_exists_as_scalar_subquery">
  ## execute\_exists\_as\_scalar\_subquery
</div>

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

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

نفِّذ استعلامات EXISTS الفرعية غير المرتبطة باعتبارها استعلامات فرعية ذات القيمة المفردة. وكما هو الحال في الاستعلامات الفرعية ذات القيمة المفردة، تُستخدم الذاكرة المؤقتة ويُطبَّق طيّ الثوابت على النتيجة.

القيمة الافتراضية في Cloud: `0`.

<div id="explain_query_plan_default">
  ## explain\_query\_plan\_default
</div>

<SettingsInfoBlock type="ExplainQueryPlanDefault" default_value="pretty" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "pretty"},{"label": "اعتبارًا من الإصدار 26.7، يصبح `EXPLAIN PLAN` افتراضيًا `actions=1, compact=1, pretty=1`. اضبط هذا على `legacy` لاستعادة المخرجات المستخدمة قبل 26.7."}]}]} />

التنسيق الافتراضي الذي يستخدمه `EXPLAIN PLAN`.

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

* `pretty` (الافتراضي منذ 26.7) — تكون `actions` و`compact` و`pretty` مضبوطة افتراضيًا على `true`، ما ينتج مخططًا موجزًا ومنسقًا ومشروحًا بالإجراءات.
* `legacy` — المخرجات المستخدمة قبل 26.7.

يؤدي تحديد الخيارات `actions` أو `compact` أو `pretty` صراحةً في تعليمة `EXPLAIN` (على سبيل المثال، `EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...`) دائمًا إلى تجاوز هذا الإعداد.

يحتفظ `EXPLAIN PLAN` مع `json = 1` أو `distributed = 1` بالقيم الافتراضية القديمة (قبل 26.7) بغض النظر عن هذا الإعداد، ما لم يتم ضبط `actions` أو `compact` أو `pretty` صراحةً. ولا يمكن لمخرجات `pretty` تمثيل نتائج JSON أو المخططات الموزعة لكل shard، لذا لا تُعرض هذه الأوضاع بشكل صحيح إلا بصيغة `legacy`.

<div id="extract_key_value_pairs_max_pairs_per_row">
  ## extract\_key\_value\_pairs\_max\_pairs\_per\_row
</div>

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "الحد الأقصى لعدد الأزواج التي يمكن أن تُنتجها الدالة `extractKeyValuePairs`. يُستخدم كإجراء احترازي لمنع استهلاك قدر كبير جدًا من الذاكرة."}]}]} />

الحد الأقصى لعدد الأزواج التي يمكن أن تُنتجها الدالة `extractKeyValuePairs`. يُستخدم كإجراء احترازي لمنع استهلاك قدر كبير جدًا من الذاكرة.

<div id="extremes">
  ## extremes
</div>

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

ما إذا كان سيتم احتساب القيم القصوى (القيم الصغرى والكبرى في أعمدة نتيجة استعلام). يقبل 0 أو 1. القيمة الافتراضية هي 0 (معطّل).
لمزيد من المعلومات، راجع قسم "القيم القصوى".

<div id="fallback_to_stale_replicas_for_distributed_queries">
  ## fallback\_to\_stale\_replicas\_for\_distributed\_queries
</div>

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

يفرض توجيه الاستعلام إلى نسخة متماثلة قديمة إذا لم تكن البيانات المحدَّثة متاحة. راجع [Replication](/docs/ar/reference/engines/table-engines/mergetree-family/replication).

يختار ClickHouse أكثر النسخ المتماثلة القديمة صلةً بالجدول.

يُستخدم عند تنفيذ `SELECT` من distributed table تشير إلى replicated tables.

افتراضيًا، 1 (مُمكّن).

<div id="file_like_engine_default_partition_strategy">
  ## file\_like\_engine\_default\_partition\_strategy
</div>

<SettingsInfoBlock type="FileLikeEngineDefaultPartitionStrategy" default_value="hive" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "hive"},{"label": "تغيير استراتيجية التقسيم الافتراضية لمحركات الجداول المشابهة للملفات (S3 وAzureBlobStorage وما إلى ذلك) من `wildcard` إلى `hive` عند عدم توفير `partition_strategy`."}]}]} />

استراتيجية التقسيم الافتراضية للمحركات المشابهة للملفات.

<div id="filesystem_prefetches_limit">
  ## filesystem\_prefetches\_limit
</div>

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

الحد الأقصى لعمليات الجلب المسبق. يشير الصفر إلى عدم وجود حد. ويُوصى باستخدام الإعداد `filesystem_prefetches_max_memory_usage` بدلًا من ذلك إذا كنت تريد تقييد عدد عمليات الجلب المسبق

<div id="final">
  ## final
</div>

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

يطبّق المُعدِّل [FINAL](/docs/ar/reference/statements/select/from#final-modifier) تلقائيًا على جميع الجداول في الاستعلام التي يمكن تطبيق [FINAL](/docs/ar/reference/statements/select/from#final-modifier) عليها، بما في ذلك الجداول المنضمّة والجداول في الاستعلامات الفرعية والجداول الموزعة.

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

* 0 - معطّل
* 1 - مُمكّن

مثال:

```sql theme={null}
CREATE TABLE test
(
    key Int64,
    some String
)
ENGINE = ReplacingMergeTree
ORDER BY key;

INSERT INTO test FORMAT Values (1, 'first');
INSERT INTO test FORMAT Values (1, 'second');

SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
┌─key─┬─some──┐
│   1 │ first │
└─────┴───────┘

SELECT * FROM test SETTINGS final = 1;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘

SET final = 1;
SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
```

<div id="finalize_projection_parts_synchronously">
  ## finalize\_projection\_parts\_synchronously
</div>

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

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

عند تمكين هذا الإعداد، تُنهى أجزاء الإسقاط بشكل متزامن أثناء INSERT، مما يقلل استخدام الذاكرة عند الذروة، ولكن على حساب تقليل توازي الرفع إلى S3. افتراضيًا، يظل تدفق المخرجات لكل إسقاط نشطًا إلى أن يُنهى الجزء بالكامل (بما في ذلك جميع الإسقاطات)، مما يتيح تداخل عمليات الرفع إلى S3، لكنه يزيد استخدام الذاكرة عند الذروة بما يتناسب مع عدد الإسقاطات. لا يؤثر هذا الإعداد إلا في مسار INSERT؛ أما الدمج وعمليات mutation فتُنهي الإسقاطات بشكل متزامن بالفعل.

<div id="flatten_nested">
  ## flatten\_nested
</div>

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

يضبط تنسيق البيانات لأعمدة [Nested](/docs/ar/reference/data-types/nested-data-structures/index).

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

* 1 — يُسطَّح عمود Nested إلى مصفوفات منفصلة.
* 0 — يبقى عمود Nested مصفوفة واحدة من قيم Tuple.

**الاستخدام**

إذا ضُبط هذا الإعداد على `0`، يمكن استخدام أي مستوى من التعشيق.

**أمثلة**

الاستعلام:

```sql theme={null}
SET flatten_nested = 1;
CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

النتيجة:

```text theme={null}
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n.a` Array(UInt32),
    `n.b` Array(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

الاستعلام:

```sql theme={null}
SET flatten_nested = 0;

CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

النتيجة:

```text theme={null}
┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n` Nested(a UInt32, b UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="fsync_metadata">
  ## fsync\_metadata
</div>

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

يؤدي إلى تمكين [fsync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html) أو تعطيله عند كتابة ملفات `.sql`. ويكون مفعّلًا افتراضيًا.

قد يكون من المنطقي تعطيله إذا كان لدى الخادم ملايين الجداول الصغيرة التي تُنشأ وتُحذف باستمرار.

<div id="functions_h3_default_if_invalid">
  ## functions\_h3\_default\_if\_invalid
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "إعداد جديد للسلوك القديم للسماح بتمرير مُدخلات غير صالحة إلى دوال h3"}]}]} />

إذا كانت القيمة false، فستُصدر دوال h3، مثل h3CellAreaM2، استثناءً إذا كان الإدخال غير صالح. وإذا كانت القيمة true، فستُرجع 0 أو القيمة الافتراضية.

<div id="geo_distance_returns_float64_on_float64_arguments">
  ## geo\_distance\_returns\_float64\_on\_float64\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "زيادة الدقة الافتراضية."}]}]} />

إذا كانت الوسيطات الأربع للدوال `geoDistance` و`greatCircleDistance` و`greatCircleAngle` كلها من النوع Float64، فستُرجِع Float64 وتستخدم دقة مضاعفة في العمليات الحسابية الداخلية. في إصدارات ClickHouse السابقة، كانت هذه الدوال تُرجِع دائمًا Float32.

<div id="geotoh3_argument_order">
  ## geotoh3\_argument\_order
</div>

<BetaBadge />

<SettingsInfoBlock type="GeoToH3ArgumentOrder" default_value="lat_lon" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "lat_lon"},{"label": "إعداد جديد للسلوك القديم لتحديد ترتيب الوسيطتين lon وlat"}]}]} />

تقبل الدالة 'geoToH3' ‎(lon, lat)‎ إذا ضُبطت على 'lon\_lat'، و‎(lat, lon)‎ إذا ضُبطت على 'lat\_lon'.

<div id="glob_expansion_max_elements">
  ## glob\_expansion\_max\_elements
</div>

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

الحد الأقصى لعدد العناوين المسموح بها (مثل وحدات التخزين الخارجية ودوال الجداول وغيرها).

<div id="h3togeo_lon_lat_result_order">
  ## h3togeo\_lon\_lat\_result\_order
</div>

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

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

تعيد الدالة 'h3ToGeo' القيمة ‎(lon, lat) إذا كانت القيمة true، وإلا فتُعيد ‎(lat, lon).

<div id="handshake_timeout_ms">
  ## handshake\_timeout\_ms
</div>

<SettingsInfoBlock type="مللي ثانية" default_value="10000" />

مهلة الانتظار بالمللي ثانية لاستلام حزمة Hello من النسخ المتماثلة أثناء المصافحة.

<div id="hedged_connection_timeout_ms">
  ## hedged\_connection\_timeout\_ms
</div>

<SettingsInfoBlock type="مللي ثانية" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "50"},{"label": "ابدأ اتصالًا جديدًا في طلبات Hedged بعد 50 مللي ثانية بدلًا من 100، ليتوافق ذلك مع مهلة الاتصال السابقة"}]}]} />

مهلة الاتصال لإنشاء اتصال مع نسخة متماثلة لطلبات Hedged

<div id="highlight_max_matches_per_row">
  ## highlight\_max\_matches\_per\_row
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000"},{"label": "إعداد جديد للحد من عدد المطابقات المبرزة في كل صف، للحماية من الإفراط في استخدام الذاكرة."}]}]} />

يحدد الحد الأقصى لعدد المطابقات المبرزة في كل صف في الدالة [highlight](/docs/ar/reference/functions/regular-functions/string-search-functions#highlight). استخدمه للحماية من الإفراط في استخدام الذاكرة عند إبراز الأنماط كثيرة التكرار في النصوص الكبيرة.

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

* عدد صحيح موجب.

<div id="hnsw_candidate_list_size_for_search">
  ## hnsw\_candidate\_list\_size\_for\_search
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "256"},{"label": "إعداد جديد. سابقًا، كانت القيمة تُحدَّد اختياريًا في CREATE INDEX، وكانت القيمة الافتراضية 64."}]}]} />

حجم قائمة المرشحين الديناميكية عند البحث في فهرس تشابه المتجهات، ويُعرف أيضًا باسم 'ef\_search'.

<div id="hsts_max_age">
  ## hsts\_max\_age
</div>

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

مدة انتهاء صلاحية HSTS. تعني القيمة 0 تعطيل HSTS.

<div id="idle_connection_timeout">
  ## idle\_connection\_timeout
</div>

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

مهلة إغلاق اتصالات TCP الخاملة بعد عدد الثواني المحدد.

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

* عدد صحيح موجب (0 - إغلاق فوري، بعد 0 ثانية).

<div id="inject_random_order_for_select_without_order_by">
  ## inject\_random\_order\_for\_select\_without\_order\_by
</div>

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

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

إذا كان مُمكّنًا، فسيُدرج 'ORDER BY rand()' في استعلامات SELECT التي لا تحتوي على بند ORDER BY.
يُطبَّق هذا فقط عندما يكون عمق الاستعلام الفرعي = 0. ولا تتأثر الاستعلامات الفرعية ولا INSERT INTO ... SELECT.
إذا كان التركيب على المستوى الأعلى هو UNION، فسيُدرج 'ORDER BY rand()' في جميع الفروع بشكل مستقل.
هذا مفيد فقط لأغراض الاختبار والتطوير (إذ إن غياب ORDER BY يُعدّ مصدرًا لنتائج استعلام غير حتمية).

<div id="interactive_delay">
  ## interactive\_delay
</div>

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

الفاصل الزمني بالميكروثانية للتحقق مما إذا كان تنفيذ الطلب قد أُلغي وإرسال معلومات التقدّم.

<div id="intersect_default_mode">
  ## intersect\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

يُعيّن الوضع الافتراضي في استعلام INTERSECT. القيم الممكنة: سلسلة فارغة، 'ALL'، 'DISTINCT'. إذا كانت القيمة فارغة، فسيؤدي الاستعلام بدون وضع إلى إثارة استثناء.

<div id="least_greatest_legacy_null_behavior">
  ## least\_greatest\_legacy\_null\_behavior
</div>

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

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

إذا كان هذا الإعداد ممكّنًا، فستُرجِع الدالتان 'least' و 'greatest' القيمة NULL إذا كانت إحدى وسيطاتهما NULL.

<div id="legacy_column_name_of_tuple_literal">
  ## legacy\_column\_name\_of\_tuple\_literal
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.7"},{"label": "0"},{"label": "أضِف هذا الإعداد لأسباب التوافق فقط. من المنطقي ضبطه على 'true' أثناء إجراء تحديث متدرّج للعنقود من إصدار أقل من 21.7 إلى إصدار أعلى"}]}]} />

أدرِج أسماء جميع عناصر قيم Tuple الحرفية الكبيرة في أسماء الأعمدة بدلًا من hash. هذا الإعداد موجود فقط لأسباب التوافق. من المنطقي ضبطه على 'true' أثناء إجراء تحديث متدرّج للعنقود من إصدار أقل من 21.7 إلى إصدار أعلى.

<div id="limit">
  ## limit
</div>

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

يحدّد الحد الأقصى لعدد الصفوف التي يمكن الحصول عليها من نتيجة الاستعلام. ويعدّل القيمة التي تحددها عبارة [LIMIT](/docs/ar/reference/statements/select/limit)، بحيث لا يمكن أن يتجاوز الحد المحدد في الاستعلام الحد الذي يفرضه هذا الإعداد.

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

* 0 — عدد الصفوف غير مقيّد.
* عدد صحيح موجب.

<div id="load_marks_asynchronously">
  ## load\_marks\_asynchronously
</div>

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

تحميل علامات MergeTree بصورة غير متزامنة

القيمة الافتراضية في Cloud: `1`.

<div id="lock_acquire_timeout">
  ## lock\_acquire\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="120" />

يحدّد عدد الثواني التي ينتظرها طلب القفل قبل أن يفشل.

تُستخدم مهلة القفل للحماية من حالات التوقف المتبادل أثناء تنفيذ عمليات القراءة والكتابة على الجداول. وعند انتهاء المهلة وفشل طلب القفل، يرفع خادم ClickHouse الاستثناء "Locking attempt timed out! Possible deadlock avoided. Client should retry." مع رمز الخطأ `DEADLOCK_AVOIDED`.

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

* عدد صحيح موجب (بالثواني).
* 0 — لا توجد مهلة للقفل.

<div id="low_priority_query_wait_time_ms">
  ## low\_priority\_query\_wait\_time\_ms
</div>

<BetaBadge />

<SettingsInfoBlock type="مللي ثانية" default_value="1000" />

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

عند استخدام آلية تحديد أولويات الاستعلامات (راجع الإعداد `priority`)، تنتظر الاستعلامات منخفضة الأولوية حتى تنتهي الاستعلامات ذات الأولوية الأعلى. يحدّد هذا الإعداد مدة هذا الانتظار.

<div id="make_distributed_plan">
  ## make\_distributed\_plan
</div>

<ExperimentalBadge />

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

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

إنشاء خطة استعلام موزعة.

<div id="merge_table_max_tables_to_look_for_schema_inference">
  ## merge\_table\_max\_tables\_to\_look\_for\_schema\_inference
</div>

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

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

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

<div id="mongodb_throw_on_unsupported_query">
  ## mongodb\_throw\_on\_unsupported\_query
</div>

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

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

إذا كان هذا الخيار مُمكّنًا، فستُرجِع جداول MongoDB خطأً عند تعذّر إنشاء استعلام MongoDB. وإلا، فسيقرأ ClickHouse الجدول بالكامل ويعالجه محليًا. لا ينطبق هذا الخيار عند تعيين 'allow\_experimental\_analyzer=0'.

<div id="multiple_joins_try_to_keep_original_names">
  ## multiple\_joins\_try\_to\_keep\_original\_names
</div>

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

لا تُضِف أسماءً مستعارة إلى قائمة التعبيرات على المستوى الأعلى عند إعادة كتابة عمليات الربط المتعددة

<div id="normalize_function_names">
  ## normalize\_function\_names
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.3"},{"label": "1"},{"label": "تطبيع أسماء الدوال إلى صيغها القياسية، وكان ذلك مطلوبًا لتوجيه استعلامات projection"}]}]} />

تطبيع أسماء الدوال إلى صيغها القياسية

<div id="offset">
  ## offset
</div>

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

يحدّد عدد الصفوف التي يجب تخطيها قبل البدء في إرجاع الصفوف من الاستعلام. ويُعدّل قيمة الإزاحة المحددة بواسطة عبارة [OFFSET](/docs/ar/reference/statements/select/offset)، بحيث تُجمع هاتان القيمتان.

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

* 0 — لا يتم تخطي أي صفوف.
* عدد صحيح موجب.

**مثال**

جدول الإدخال:

```sql theme={null}
CREATE TABLE test (i UInt64) ENGINE = MergeTree() ORDER BY i;
INSERT INTO test SELECT number FROM numbers(500);
```

الاستعلام:

```sql theme={null}
SET limit = 5;
SET offset = 7;
SELECT * FROM test LIMIT 10 OFFSET 100;
```

النتيجة:

```text theme={null}
┌───i─┐
│ 107 │
│ 108 │
│ 109 │
└─────┘
```

<div id="paimon_target_snapshot_id">
  ## paimon\_target\_snapshot\_id
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Int64" default_value="-1" />

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

قراءة لقطة مستهدفة على مستوى الاستعلام لوضع Paimon التزايدي. عند القيمة >0، سيجلب القارئ فقط دلتا
للـ snapshot\_id المحدد دون تقديم المؤشر المائي المعتمد.
القيمة الافتراضية: -1 (معطّل)

<div id="parallelize_output_from_storages">
  ## parallelize\_output\_from\_storages
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "1"},{"label": "السماح بالتوازي عند تنفيذ الاستعلامات التي تقرأ من file\/URL\/S3\/etc. وقد يؤدي ذلك إلى إعادة ترتيب الصفوف."}]}]} />

موازاة المخرجات في خطوة القراءة من وحدات التخزين. يتيح هذا إجراء معالجة الاستعلامات بالتوازي مباشرةً بعد القراءة من وحدة التخزين، إذا أمكن ذلك

<div id="partial_result_on_first_cancel">
  ## partial\_result\_on\_first\_cancel
</div>

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

يسمح بإرجاع نتيجة جزئية للاستعلام بعد الإلغاء.

<div id="per_part_index_stats">
  ## per\_part\_index\_stats
</div>

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

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

يسجّل إحصاءات الفهرس لكل جزء

<div id="poll_interval">
  ## poll\_interval
</div>

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

يُعلّق التنفيذ في حلقة انتظار الاستعلام على الخادم لعدد الثواني المحدد.

<div id="polyglot_dialect">
  ## polyglot\_dialect
</div>

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": ""},{"label": "إعداد جديد لتحديد لهجة SQL المصدر لمحوّل polyglot."}]}]} />

لهجة SQL المصدر لمحوّل polyglot (مثل: 'sqlite' و'mysql' و'postgresql' و'snowflake' و'duckdb').

<div id="postgresql_fault_injection_probability">
  ## postgresql\_fault\_injection\_probability
</div>

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

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

الاحتمال التقريبي لفشل استعلامات PostgreSQL الداخلية (المستخدمة في النسخ المتماثل). القيمة الصالحة ضمن النطاق \[0.0f, 1.0f]

<div id="predicate_statistics_sample_rate">
  ## predicate\_statistics\_sample\_rate
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "إعداد جديد لجمع إحصاءات انتقائية عبارات الشرط في system.predicate_statistics_log"}]}]} />

يجمع إحصاءات انتقائية عبارات الشرط في `system.predicate_statistics_log`. عند تعيينه إلى N > 0، تُؤخذ عيّنة من نحو 1/N من الاستعلامات (استنادًا إلى معرّف الاستعلام). 0 يعني تعطيله.

<div id="prefetch_buffer_size">
  ## prefetch\_buffer\_size
</div>

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

الحد الأقصى لحجم مخزن الجلب المسبق المؤقت المستخدم للقراءة من نظام الملفات. تُقيَّد القيم التي تتجاوز 256 MiB عند 256 MiB، لأن مخزن القراءة المؤقت لا يحتاج مطلقًا إلى حجم أكبر.

<div id="print_pretty_type_names">
  ## print\_pretty\_type\_names
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "تجربة مستخدم أفضل."}]}]} />

يسمح بعرض أسماء الأنواع المتداخلة بعمق بصورة منسقة مع مسافات بادئة في query `DESCRIBE` وفي الدالة `toTypeName()`.

مثال:

```sql theme={null}
CREATE TABLE test (a Tuple(b String, c Tuple(d Nullable(UInt64), e Array(UInt32), f Array(Tuple(g String, h Map(String, Array(Tuple(i String, j UInt64))))), k Date), l Nullable(String))) ENGINE=Memory;
DESCRIBE TABLE test FORMAT TSVRaw SETTINGS print_pretty_type_names=1;
```

```
a   Tuple(
    b String,
    c Tuple(
        d Nullable(UInt64),
        e Array(UInt32),
        f Array(Tuple(
            g String,
            h Map(
                String,
                Array(Tuple(
                    i String,
                    j UInt64
                ))
            )
        )),
        k Date
    ),
    l Nullable(String)
)
```

<div id="priority">
  ## priority
</div>

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

priority الاستعلام. 1 هي الأعلى، وكلما زادت القيمة انخفضت priority؛ 0 يعني عدم استخدام الأولويات.

<div id="push_external_roles_in_interserver_queries">
  ## push\_external\_roles\_in\_interserver\_queries
</div>

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

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

تمكين تمرير أدوار المستخدم من العقدة المُرسِلة إلى العُقد الأخرى أثناء تنفيذ استعلام.

<div id="query_metric_log_interval">
  ## query\_metric\_log\_interval
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

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

الفاصل الزمني، بالمللي ثانية، الذي تُجمع عنده بيانات [query\_metric\_log](/docs/ar/reference/system-tables/query_metric_log) لكل استعلام على حدة.

إذا ضُبطت هذه القيمة على أي قيمة سالبة، فستأخذ قيمة `collect_interval_milliseconds` من [إعداد query\_metric\_log](/docs/ar/reference/settings/server-settings/settings#query_metric_log)، أو ستُستخدم القيمة الافتراضية 1000 إذا لم تكن موجودة.

لتعطيل جمع البيانات لاستعلام واحد، اضبط `query_metric_log_interval` على 0.

القيمة الافتراضية: -1

<div id="queue_max_wait_ms">
  ## queue\_max\_wait\_ms
</div>

<SettingsInfoBlock type="ميلي ثانية" default_value="0" />

مدة الانتظار في قائمة انتظار الطلبات، إذا تجاوز عدد الطلبات المتزامنة الحد الأقصى.

<div id="rabbitmq_max_wait_ms">
  ## rabbitmq\_max\_wait\_ms
</div>

<SettingsInfoBlock type="مللي ثانية" default_value="5000" />

مدة الانتظار لقراءة البيانات من RabbitMQ قبل إعادة المحاولة.

<div id="readonly">
  ## readonly
</div>

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

0 - لا توجد أي قيود على وضع القراءة فقط. 1 - يُسمح فقط بطلبات القراءة، وكذلك بتغيير الإعدادات المسموح بها صراحةً. 2 - يُسمح فقط بطلبات القراءة، وكذلك بتغيير الإعدادات، باستثناء الإعداد 'readonly'.

<div id="recursive_cte_max_steps_in_type_inference">
  ## recursive\_cte\_max\_steps\_in\_type\_inference
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10"},{"label": "الحد الأقصى لعدد التكرارات لاستنتاج أنواع الأعمدة في تعبيرات الجدول الشائعة التعاودية باستخدام `getLeastSupertype` بشكل تكراري"}]}]} />

الحد الأقصى لعدد التكرارات لاستنتاج أنواع الأعمدة في تعبيرات الجدول الشائعة التعاودية. تُحدَّد أنواع الأعمدة عبر تطبيق `getLeastSupertype` تكراريًا على الطرفين غير التعاودي والتعاودي من UNION ALL حتى الوصول إلى حالة الاستقرار. اضبط القيمة على 0 لتعطيل توسيع الأنواع والاكتفاء بالأنواع من الجزء غير التعاودي فقط.

<div id="regexp_max_matches_per_row">
  ## regexp\_max\_matches\_per\_row
</div>

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

يحدّد الحد الأقصى لعدد المطابقات لتعبير نمطي واحد في كل صف. استخدمه للحماية من الاستهلاك المفرط للذاكرة عند استخدام تعبير نمطي جشع في الدالة [extractAllGroupsHorizontal](/docs/ar/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal).

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

* عدد صحيح موجب.

<div id="reject_expensive_hyperscan_regexps">
  ## reject\_expensive\_hyperscan\_regexps
</div>

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

استبعِد الأنماط التي يُحتمل أن يكون تقييمها مكلفًا باستخدام hyperscan (بسبب التضخم في حالات NFA)

<div id="remerge_sort_lowered_memory_bytes_ratio">
  ## remerge\_sort\_lowered\_memory\_bytes\_ratio
</div>

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

إذا لم ينخفض استهلاك الذاكرة بعد إعادة الدمج بهذه النسبة، فسيتم تعطيل إعادة الدمج.

<div id="remote_read_min_bytes_for_seek">
  ## remote\_read\_min\_bytes\_for\_seek
</div>

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

الحد الأدنى من البايتات المطلوب للقراءة عن بُعد (URL، S3) لإجراء seek بدلًا من القراءة مع ignore.

<div id="rename_files_after_processing">
  ## rename\_files\_after\_processing
</div>

* **النوع:** String

* **القيمة الافتراضية:** سلسلة فارغة

يتيح هذا الإعداد تحديد نمط لإعادة تسمية الملفات التي تعالجها دالة الجدول `file`. عند تعيين هذا الخيار، ستُعاد تسمية جميع الملفات التي تقرؤها دالة الجدول `file` وفقًا للنمط المحدد باستخدام العناصر النائبة، وذلك فقط إذا تمت معالجة الملفات بنجاح.

<div id="placeholders">
  ### العناصر النائبة
</div>

* `%a` — اسم الملف الأصلي كاملًا (على سبيل المثال، "sample.csv").
* `%f` — اسم الملف الأصلي بدون امتداد (على سبيل المثال، "sample").
* `%e` — امتداد الملف الأصلي متضمّنًا النقطة (على سبيل المثال، ".csv").
* `%t` — الطابع الزمني (بالميكروثانية).
* `%%` — علامة النسبة المئوية ("%").

<div id="example">
  ### مثال
</div>

* الخيار: `--rename_files_after_processing="processed_%f_%t%e"`

* الاستعلام: `SELECT * FROM file('sample.csv')`

إذا تمت قراءة `sample.csv` بنجاح، فسيُعاد تسمية الملف إلى `processed_sample_1683473210851438.csv`

<div id="replication_wait_for_inactive_replica_timeout">
  ## replication\_wait\_for\_inactive\_replica\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="120" />

يحدّد مدة الانتظار (بالثواني) حتى تنفّذ النسخ المتماثلة غير النشطة استعلامات [`ALTER`](/docs/ar/reference/statements/alter/index) أو [`OPTIMIZE`](/docs/ar/reference/statements/optimize) أو [`TRUNCATE`](/docs/ar/reference/statements/truncate).

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

* `0` — عدم الانتظار.
* عدد صحيح سالب — الانتظار لمدة غير محدودة.
* عدد صحيح موجب — عدد الثواني المطلوب انتظارها.

<div id="reserve_memory">
  ## reserve\_memory
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "إعداد جديد لحجز الذاكرة لعبء عمل محدد قبل بدء استعلام."}]}]} />

يُستخدم هذا الإعداد في جدولة أعباء العمل. وهو الحد الأدنى من RAM المحجوزة لاستخدامها لتشغيل استعلام على خادم واحد. ويُجرى الحجز عبر التسلسل الهرمي لـ WORKLOAD باستخدام قيمة إعداد الاستعلام `workload`.
إذا لم تكن هناك ذاكرة كافية متاحة لعبء العمل، فسيُمنع الاستعلام من البدء وينتظر في حالة pending إلى أن يمكن تلبية الحجز.
تعني القيمة `0` عدم وجود حجز.
لا يسري هذا الإعداد إلا إذا تم إنشاء مورد MEMORY RESERVATION.

<div id="restore_replicated_merge_tree_to_shared_merge_tree">
  ## restore\_replicated\_merge\_tree\_to\_shared\_merge\_tree
</div>

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

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

استبدال محرك الجدول من Replicated*MergeTree إلى Shared*MergeTree أثناء RESTORE.

القيمة الافتراضية في Cloud: `1`.

<div id="result_overflow_mode">
  ## result\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

يحدّد ما يجب فعله إذا تجاوز حجم النتيجة أحد الحدود.

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

* `throw`: يرفع استثناءً (الافتراضي).
* `break`: يوقف تنفيذ الاستعلام ويُرجع نتيجة جزئية، كما لو أن
  البيانات المصدرية قد نفدت.

يشبه استخدام 'break' استخدام LIMIT. ولا يوقف `Break` التنفيذ إلا على
مستوى الكتلة. وهذا يعني أن عدد الصفوف المُعادة يكون أكبر من
[`max_result_rows`](/docs/ar/reference/settings/session-settings/max-result#max_result_rows)، ومن مضاعفات [`max_block_size`](/docs/ar/reference/settings/session-settings/max#max_block_size)
ويعتمد على [`max_threads`](/docs/ar/reference/settings/session-settings/max-threads#max_threads).

**مثال**

```sql title="Query" theme={null}
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';

SELECT *
FROM numbers_mt(100000)
FORMAT Null;
```

```text title="Result" theme={null}
6666 rows in set. ...
```

<div id="rows_before_aggregation">
  ## rows\_before\_aggregation
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "يوفّر قيمة دقيقة لإحصائية rows_before_aggregation، التي تمثل عدد الصفوف المقروءة قبل التجميع"}]}]} />

عند التمكين، يوفّر ClickHouse قيمة دقيقة لإحصائية rows\_before\_aggregation، التي تمثل عدد الصفوف المقروءة قبل التجمي

<div id="secondary_indices_enable_bulk_filtering">
  ## secondary\_indices\_enable\_bulk\_filtering
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "خوارزمية جديدة للتصفية بواسطة فهارس تخطي البيانات"}]}]} />

يُفعِّل خوارزمية التصفية المجمّعة للفهارس. ومن المتوقع أن تكون أفضل دائمًا، لكن هذا الإعداد متاح لأغراض التوافق والتحكم.

<div id="select_sequential_consistency">
  ## select\_sequential\_consistency
</div>

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

<Note>
  يختلف سلوك هذا الإعداد بين SharedMergeTree وReplicatedMergeTree. راجع [SharedMergeTree consistency](/docs/ar/products/cloud/features/infrastructure/shared-merge-tree#consistency) لمزيد من المعلومات حول سلوك `select_sequential_consistency` في SharedMergeTree.
</Note>

يمكّن أو يعطّل الاتساق التسلسلي لاستعلامات `SELECT`. ويتطلب ذلك تعطيل `insert_quorum_parallel` (وهو مُمكَّن افتراضيًا).

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

* 0 — معطّل.
* 1 — مُمكَّن.

الاستخدام

عند تمكين الاتساق التسلسلي، لا يسمح ClickHouse للعميل بتنفيذ استعلام `SELECT` إلا على النسخ المتماثلة التي تحتوي على بيانات جميع استعلامات `INSERT` السابقة المُنفَّذة باستخدام `insert_quorum`. وإذا أشار العميل إلى نسخة متماثلة غير مكتملة، فسينشئ ClickHouse استثناءً. ولن يتضمن استعلام `SELECT` البيانات التي لم تُكتب بعد إلى نصاب النسخ المتماثلة.

عندما يكون `insert_quorum_parallel` مُمكَّنًا (وهو الإعداد الافتراضي)، فإن `select_sequential_consistency` لا يعمل. ويعود ذلك إلى أن استعلامات `INSERT` المتوازية قد تُكتب إلى مجموعات مختلفة من النسخ المتماثلة ضمن النصاب، لذلك لا يوجد ما يضمن أن نسخة متماثلة واحدة قد استلمت جميع عمليات الكتابة.

انظر أيضًا:

* [insert\_quorum](/docs/ar/reference/settings/session-settings/insert-quorum#insert_quorum)
* [insert\_quorum\_timeout](/docs/ar/reference/settings/session-settings/insert-quorum#insert_quorum_timeout)
* [insert\_quorum\_parallel](/docs/ar/reference/settings/session-settings/insert-quorum#insert_quorum_parallel)

<div id="session_timezone">
  ## session\_timezone
</div>

<BetaBadge />

يضبط المنطقة الزمنية الضمنية للجلسة الحالية أو للاستعلام الحالي.
المنطقة الزمنية الضمنية هي المنطقة الزمنية المُطبَّقة على القيم من النوع DateTime/DateTime64 التي لا تكون لها منطقة زمنية محددة صراحةً.
يتقدّم هذا الإعداد على المنطقة الزمنية الضمنية المضبوطة عمومًا (على مستوى الخادم).
تعني القيمة '' (سلسلة فارغة) أن المنطقة الزمنية الضمنية للجلسة الحالية أو للاستعلام الحالي تساوي [المنطقة الزمنية للخادم](/docs/ar/reference/settings/server-settings/settings#timezone).

يمكنك استخدام الدالتين `timeZone()` و`serverTimeZone()` للحصول على المنطقة الزمنية للجلسة والمنطقة الزمنية للخادم.

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

* أي اسم منطقة زمنية من `system.time_zones`، مثل `Europe/Berlin` أو `UTC` أو `Zulu`

أمثلة:

```sql theme={null}
SELECT timeZone(), serverTimeZone() FORMAT CSV

"Europe/Berlin","Europe/Berlin"
```

```sql theme={null}
SELECT timeZone(), serverTimeZone() SETTINGS session_timezone = 'Asia/Novosibirsk' FORMAT CSV

"Asia/Novosibirsk","Europe/Berlin"
```

عيّن المنطقة الزمنية للجلسة 'America/Denver' لقيمة DateTime الداخلية من دون تحديد المنطقة الزمنية صراحةً:

```sql theme={null}
SELECT toDateTime64(toDateTime64('1999-12-12 23:23:23.123', 3), 3, 'Europe/Zurich') SETTINGS session_timezone = 'America/Denver' FORMAT TSV

1999-12-13 07:23:23.123
```

<Warning>
  ليست كل الدوال التي تُحلِّل DateTime/DateTime64 تراعي `session_timezone`. وقد يؤدي ذلك إلى أخطاء خفية.
  راجع المثال والشرح التاليين.
</Warning>

```sql theme={null}
CREATE TABLE test_tz (`d` DateTime('UTC')) ENGINE = Memory AS SELECT toDateTime('2000-01-01 00:00:00', 'UTC');

SELECT *, timeZone() FROM test_tz WHERE d = toDateTime('2000-01-01 00:00:00') SETTINGS session_timezone = 'Asia/Novosibirsk'
0 rows in set.

SELECT *, timeZone() FROM test_tz WHERE d = '2000-01-01 00:00:00' SETTINGS session_timezone = 'Asia/Novosibirsk'
┌───────────────────d─┬─timeZone()───────┐
│ 2000-01-01 00:00:00 │ Asia/Novosibirsk │
└─────────────────────┴──────────────────┘
```

يحدث هذا بسبب اختلاف مسارات التحليل:

* إن `toDateTime()` من دون تحديد `time zone` صراحةً، والمستخدمة في استعلام `SELECT` الأول، تراعي الإعداد `session_timezone` والمنطقة الزمنية العامة.
* في الاستعلام الثاني، يُحلَّل `DateTime` من `String`، ويرث النوع والمنطقة الزمنية للعمود الحالي `d`. لذلك، لا يُراعى الإعداد `session_timezone` ولا المنطقة الزمنية العامة.

**انظر أيضًا**

* [timezone](/docs/ar/reference/settings/server-settings/settings#timezone)

<div id="set_overflow_mode">
  ## set\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

يحدد ما يحدث عندما تتجاوز كمية البيانات أحد الحدود.

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

* `throw`: رفع استثناء (الافتراضي).
* `break`: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن
  بيانات المصدر قد نفدت.

<div id="single_join_prefer_left_table">
  ## single\_join\_prefer\_left\_table
</div>

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

عند وجود JOIN واحدة، وفي حال التباس المعرّف، فَضِّل الجدول الأيسر

<div id="skip_redundant_aliases_in_udf">
  ## skip\_redundant\_aliases\_in\_udf
</div>

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

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

لا تُستخدم الأسماء المستعارة الزائدة (ولا يُستعاض بها) في الدوال المعرّفة من قبل المستخدم، وذلك لتبسيط استخدامها.

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

* 1 — يتم تجاوز الأسماء المستعارة (الاستعاضة عنها) في UDFs.
* 0 — لا يتم تجاوز الأسماء المستعارة (الاستعاضة عنها) في UDFs.

**مثال**

الفرق بين حالتي التمكين والتعطيل:

الاستعلام:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 0;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

النتيجة:

```text theme={null}
SELECT ((4 + 2) + 1 AS y, y + 2)
```

الاستعلام:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 1;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

النتيجة:

```text theme={null}
SELECT ((4 + 2) + 1, ((4 + 2) + 1) + 2)
```

<div id="sleep_after_receiving_query_ms">
  ## sleep\_after\_receiving\_query\_ms
</div>

<SettingsInfoBlock type="مللي ثانية" default_value="0" />

مدة الانتظار بعد استلام الاستعلام في TCPHandler

<div id="snappy_mode">
  ## snappy\_mode
</div>

<SettingsInfoBlock type="SnappyMode" default_value="basic" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "basic"},{"label": "إعداد جديد للتحكم في تنسيق wire المستخدم لضغط snappy في عمليات إدخال/إخراج الملفات العامة وعمليات إدخال/إخراج URL. تحافظ القيمة الافتراضية `basic` على التوافق مع قراءات تنسيق كتل Hadoop snappy المتوافقة مع الإصدارات السابقة؛ بينما يستخدم HTTP `Content-Encoding: snappy` دائمًا تنسيق framing بغضّ النظر عن هذا الإعداد."}]}]} />

يتحكم هذا الإعداد في تنسيق wire المستخدم لضغط snappy لمسارات إدخال/إخراج الملفات العامة مثل `file` و`url`. ويستخدم HTTP `Content-Encoding: snappy` دائمًا تنسيق framing ويتجاهل هذا الإعداد.

لاحظ أن تنسيق كتل snappy الخام الناتج عن استدعاء واحد لـ `snappy::Compress` (على سبيل المثال، حمولات بروتوكول Prometheus البعيد التي يتعامل معها `SnappyBasicReadBuffer`) هو تنسيق wire منفصل وخاص بالبروتوكول، ولا يتحكم فيه هذا الإعداد.

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

* `basic` — تنسيق كتل Hadoop snappy. متوافق مع الملفات التي يقرأها Hadoop ويكتبها. يدعم القراءة والكتابة.
* `framed` — تنسيق framing لـ Snappy، وهو تنسيق البث القياسي الذي تحدده Google. يدعم القراءة والكتابة.

<div id="sort_overflow_mode">
  ## sort\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

يحدّد ما يحدث إذا تجاوز عدد الصفوف المستلَمة قبل الفرز أحد الحدود القصوى.

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

* `throw`: إثارة استثناء.
* `break`: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية.

<div id="splitby_max_substrings_includes_remaining_string">
  ## splitby\_max\_substrings\_includes\_remaining\_string
</div>

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

يتحكم هذا الإعداد في ما إذا كانت الدالة [splitBy\*()](/docs/ar/reference/functions/regular-functions/splitting-merging-functions) التي تستخدم الوسيط `max_substrings` > 0 ستضمّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة.

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

* `0` - لن تُضمَّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة.
* `1` - ستُضمَّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة. هذا هو سلوك الدالة [`split()`](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html) في Spark والطريقة ['string.split()'](https://docs.python.org/3/library/stdtypes.html#str.split) في بايثون.

<div id="stop_refreshable_materialized_views_on_startup">
  ## stop\_refreshable\_materialized\_views\_on\_startup
</div>

<ExperimentalBadge />

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

عند بدء تشغيل الخادم، يمنع جدولة طرق العرض المادية القابلة للتحديث، كما لو تم استخدام SYSTEM STOP VIEWS. ويمكنك تشغيلها يدويًا بعد ذلك باستخدام `SYSTEM START VIEWS` أو `SYSTEM START VIEW <name>`. وينطبق ذلك أيضًا على طرق العرض المنشأة حديثًا. ولا يؤثر هذا في طرق العرض المادية غير القابلة للتحديث.

<div id="tcp_keep_alive_timeout">
  ## tcp\_keep\_alive\_timeout
</div>

<SettingsInfoBlock type="ثوانٍ" default_value="290" />

الوقت بالثواني الذي يجب أن يبقى فيه الاتصال خاملاً قبل أن يبدأ TCP في إرسال مجسّات keepalive

<div id="temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds">
  ## temporary\_data\_in\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "600000"},{"label": "مدة الانتظار لقفل ذاكرة التخزين المؤقت لنظام الملفات عند حجز مساحة للبيانات المؤقتة"}]}]} />

مدة الانتظار لقفل ذاكرة التخزين المؤقت لنظام الملفات عند حجز مساحة للبيانات المؤقتة

<div id="throw_if_no_data_to_insert">
  ## throw\_if\_no\_data\_to\_insert
</div>

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

يسمح بعمليات INSERT الفارغة أو يمنعها، وهو مفعّل افتراضيًا (ويؤدي إلى ظهور خطأ عند تنفيذ عملية insert فارغة). لا ينطبق هذا إلا على عمليات INSERT التي تستخدم [`clickhouse-client`](/docs/ar/concepts/features/interfaces/cli) أو [واجهة gRPC](/docs/ar/concepts/features/interfaces/grpc).

<div id="timeout_before_checking_execution_speed">
  ## timeout\_before\_checking\_execution\_speed
</div>

<SettingsInfoBlock type="ثوانٍ" default_value="10" />

يتحقق من أن سرعة التنفيذ ليست منخفضة جدًا (أي لا تقل عن `min_execution_speed`)،
وذلك بعد انقضاء الوقت المحدد بالثواني.

<div id="transfer_overflow_mode">
  ## transfer\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

تحدد ما يحدث عند تجاوز كمية البيانات أحد الحدود.

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

* `throw`: إثارة استثناء (الافتراضي).
* `break`: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو كانت
  بيانات المصدر قد نفدت.

<div id="transform_null_in">
  ## transform\_null\_in
</div>

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

يُمكّن اعتبار قيم [NULL](/docs/ar/reference/syntax#null) متساوية عند استخدام عامل التشغيل [IN](/docs/ar/reference/statements/in).

بشكل افتراضي، لا يمكن مقارنة قيم `NULL` لأن `NULL` تعني قيمة غير معرّفة. لذلك، يجب أن تُرجع المقارنة `expr = NULL` دائمًا `false`. ومع هذا الإعداد، تُرجع `NULL = NULL` القيمة `true` مع عامل التشغيل `IN`.

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

* 0 — تُرجع مقارنة قيم `NULL` في عامل التشغيل `IN` القيمة `false`.
* 1 — تُرجع مقارنة قيم `NULL` في عامل التشغيل `IN` القيمة `true`.

**مثال**

لنأخذ الجدول `null_in`:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
│    3 │     3 │
└──────┴───────┘
```

الاستعلام:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;
```

النتيجة:

```text theme={null}
┌──idx─┬────i─┐
│    1 │    1 │
└──────┴──────┘
```

الاستعلام:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;
```

النتيجة:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
└──────┴───────┘
```

**انظر أيضًا**

* [معالجة NULL في عوامل التشغيل `IN`](/docs/ar/reference/statements/in#null-processing)

<div id="traverse_shadow_remote_data_paths">
  ## traverse\_shadow\_remote\_data\_paths
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "اجتز دليل الظل عند تنفيذ استعلام على system.remote_data_paths."}]}]} />

اجتز البيانات المجمّدة (دليل الظل) بالإضافة إلى بيانات الجدول الفعلية عند تنفيذ استعلام على system.remote\_data\_paths

<div id="union_default_mode">
  ## union\_default\_mode
</div>

يحدد وضعًا لدمج نتائج استعلام `SELECT`. لا يُستخدم هذا الإعداد إلا مع [UNION](/docs/ar/reference/statements/select/union) عند عدم تحديد `UNION ALL` أو `UNION DISTINCT` صراحةً.

القيم المحتملة:

* `'DISTINCT'` — يُخرج ClickHouse الصفوف الناتجة عن دمج الاستعلامات بعد إزالة الصفوف المكررة.
* `'ALL'` — يُخرج ClickHouse جميع الصفوف الناتجة عن دمج الاستعلامات، بما في ذلك الصفوف المكررة.
* `''` — يُنشئ ClickHouse استثناءً عند استخدامه مع `UNION`.

راجع الأمثلة في [UNION](/docs/ar/reference/statements/select/union).

<div id="unique_key_max_encoded_size">
  ## unique\_key\_max\_encoded\_size
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "256"},{"label": "إعداد جديد: الحد الأقصى للحجم (بالبايت) للترميز الثنائي الذي يحافظ على الترتيب لصف واحد من UNIQUE KEY"}]}]} />

الحد الأقصى للحجم (بالبايت) للترميز الثنائي الذي يحافظ على الترتيب لصف واحد من `UNIQUE KEY`.

<div id="unknown_packet_in_send_data">
  ## unknown\_packet\_in\_send\_data
</div>

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

أرسل حزمة غير معروفة بدلًا من حزمة البيانات رقم N

<div id="variant_throw_on_type_mismatch">
  ## variant\_throw\_on\_type\_mismatch
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "إعداد جديد للتحكم في سلوك عدم تطابق الأنواع في التنفيذ الافتراضي لـ Variant"}]}]} />

عند تطبيق دالة على عمود [Variant](/docs/ar/reference/data-types/variant) باستخدام التنفيذ الافتراضي،
يحدد هذا الإعداد ما يحدث للصفوف التي يكون نوعها الفعلي غير متوافق مع الدالة:

* `true` (الافتراضي) — طرح استثناء.
* `false` — إرجاع `NULL` لهذه الصفوف بدلًا من ذلك.

<div id="wait_changes_become_visible_after_commit_mode">
  ## wait\_changes\_become\_visible\_after\_commit\_mode
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="TransactionsWaitCSNMode" default_value="wait_unknown" />

انتظر حتى تصبح التغييرات التي تم تثبيتها مرئية فعليًا في أحدث لقطة

<div id="workload">
  ## عبء العمل
</div>

<SettingsInfoBlock type="String" default_value="default" />

اسم عبء العمل المُستخدَم للوصول إلى الموارد

<div id="write_full_path_in_iceberg_metadata">
  ## write\_full\_path\_in\_iceberg\_metadata
</div>

<ExperimentalBadge />

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

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

يكتب المسارات الكاملة (بما في ذلك s3://) في ملفات البيانات الوصفية لـ Iceberg.

<div id="zstd_window_log_max">
  ## zstd\_window\_log\_max
</div>

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

يسمح لك بتحديد القيمة القصوى لـ window log في ZSTD (لن يُستخدم مع عائلة MergeTree)
