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

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

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

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="read_in_order_two_level_merge_threshold">
  ## read\_in\_order\_two\_level\_merge\_threshold
</div>

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

الحد الأدنى لعدد الأجزاء التي يجب قراءتها لتشغيل خطوة دمج أوّلي أثناء القراءة متعددة الخيوط بترتيب المفتاح الأساسي.

<div id="read_in_order_use_buffering">
  ## read\_in\_order\_use\_buffering
</div>

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

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

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

<div id="read_in_order_use_virtual_row">
  ## read\_in\_order\_use\_virtual\_row
</div>

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

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

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

<div id="read_in_order_use_virtual_row_per_block">
  ## read\_in\_order\_use\_virtual\_row\_per\_block
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "إصدار صف افتراضي بعد كل كتلة أثناء القراءة بالترتيب للسماح بإعادة تحديد أولوية المصادر بوتيرة أعلى في MergingSortedTransform."}]}]} />

عند تمكينه مع `read_in_order_use_virtual_row`، يُصدر صفًا افتراضيًا بعد كل كتلة تتم قراءتها (وليس فقط في بداية كل جزء).
ويتيح ذلك لـ `MergingSortedTransform` إعادة تحديد أولوية المصادر بوتيرة أكثر تكرارًا، وهو ما يفيد عندما تستبعد عوامل التصفية اللاحقة عددًا كبيرًا من الصفوف وتكون البيانات موزعة بشكل غير متساوٍ عبر الأجزاء.
لاحظ أن هذا يعطّل تحسين `read_in_order_use_buffering` والدمج الأوّلي (`read_in_order_two_level_merge_threshold`) أثناء القراءة.
