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

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

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

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

<div id="use_top_k_dynamic_filtering">
  ## use\_top\_k\_dynamic\_filtering
</div>

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

يُفعِّل تحسين التصفية الديناميكية عند تنفيذ استعلام `ORDER BY <column> LIMIT n`.

عند التمكين، سيحاول منفّذ الاستعلام تخطي الـ granules والصفوف التي لن تكون ضمن صفوف `top N` النهائية في مجموعة النتائج. وهذا التحسين ديناميكي بطبيعته، وتعتمد تحسينات زمن الاستجابة على توزيع البيانات ووجود شروط تصفية أخرى في الاستعلام.

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

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

<div id="use_top_k_dynamic_filtering_for_variable_length_types">
  ## use\_top\_k\_dynamic\_filtering\_for\_variable\_length\_types
</div>

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

اسمح بتطبيق `use_top_k_dynamic_filtering` عندما يكون عمود الفرز من نوع بيانات متغيّر الطول (مثل `String` و`Array` و`Map` و`Tuple` الذي يحتوي على عناصر متغيرة الطول).

بالنسبة إلى هذه الأنواع، قد تفوق تكلفة مقارنة العتبة لكل صف، التي تنفذها التصفية الديناميكية، مقدار التوفير الذي تحققه عندما تكون القيمة الدنيا المعجمية للعمود هي السائدة (مثل السلاسل الفارغة في معظمها)، ولا يمكن تخطي سوى عدد قليل من الحبيبات. في هذه الحالة، تؤدي التصفية الديناميكية إلى زيادة زمن استجابة الاستعلام بدلًا من تحسينه.

عندما يكون هذا الإعداد `0`، تقتصر التصفية الديناميكية على الأعمدة التي تكون لقيمها سعة قصوى ثابتة في الذاكرة (الأرقام، `Date`، `DateTime`، `FixedString`، `Enum`، و`Nullable` لهذه الأنواع، و`Tuple` لهذه الأنواع). وعند ضبطه على `1`، تنطبق التصفية الديناميكية على الأنواع متغيرة الطول أيضًا.

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

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