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

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

> إعدادات جلسة ClickHouse في المجموعة المُنشأة optimize_and_compare_chain_*.

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](/docs/ar/reference/system-tables/settings)، ويتم توليدها تلقائيًا من [الكود المصدري](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="optimize_and_compare_chain">
  ## optimize\_and\_compare\_chain
</div>

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

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

يضيف المقارنات الثابتة في سلاسل AND لتحسين إمكانات التصفية. ويدعم المعاملات `<` و `<=` و `>` و `>=` و `=` وأي مزيج منها. على سبيل المثال، سيصبح `(a < b) AND (b < c) AND (c < 5)` بالشكل `(a < b) AND (b < c) AND (c < 5) AND (b < 5) AND (a < 5)`.

<div id="optimize_and_compare_chain_max_hash_work">
  ## optimize\_and\_compare\_chain\_max\_hash\_work
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "5000000"},{"label": "إعداد جديد يحدّ من مقدار العمل الذي ينفّذه تحسين `optimize_and_compare_chain` (ويُقاس بعدد عُقد شجرة الاستعلام التي تُحسب لها قيمة hash) بحيث لا يطغى على تحليل الاستعلامات التي تحتوي على سلاسل `AND` كبيرة جدًا أو كثيرة جدًا من المقارنات. تعيد القيمة السابقة `0` (غير محدود) سلوك ما قبل 26.7، حيث لم يكن هذا التحسين مقيّدًا بحد أقصى، لذا فإن تعيين `compatibility` إلى إصدار أقدم يُبقي على اشتقاق الشروط الانتقالية من دون ميزانية. اضبطه على `0` لتعطيل الميزانية."}]}]} />

ميزانية العمل لتحسين `optimize_and_compare_chain` أثناء تحليل الاستعلام، وتُقاس بعدد عُقد شجرة الاستعلام التي تُحسب لها قيمة hash بواسطة `getTreeHash` (وهي الكلفة الأساسية لهذا التحسين). وبمجرد أن يحسب الاستعلام قيمة hash لأكثر من هذا العدد من العُقد أثناء تطبيق التحسين، يتوقف عن تطبيقه على بقية الاستعلام. يحدّ هذا من زمن التحليل للاستعلامات التي تحتوي على سلاسل `AND` كبيرة جدًا أو كثيرة جدًا من المقارنات، حيث يمكن لهذا التحسين، بخلاف ذلك، أن يهيمن على التحليل من دون أن يحقق أي تبسيط. ويظل الإيقاف المبكر آمنًا دائمًا: فهو يعني فقط الاستغناء عن تحسين، ولا يغيّر النتائج مطلقًا. اضبطه على `0` لتعطيل الميزانية (غير محدود).
