> ## 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 الاستعلام الأكثر إفراطًا في التخصيص ويحاول تحرير الذاكرة بإنهاء هذا الاستعلام.

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

يُحدَّد الاستعلام الذي يجب إيقافه أو إنهاؤه بواسطة متتبّعات الإفراط في التخصيص العامة أو الخاصة بالمستخدم، وذلك بحسب حد الذاكرة الذي تم بلوغه.
إذا تعذّر على متتبّع الإفراط في التخصيص اختيار استعلام لإيقافه، فسيُطرح استثناء MEMORY\_LIMIT\_EXCEEDED.

<div id="user-overcommit-tracker">
  ## متعقّب الإفراط في التخصيص للمستخدم
</div>

يعثر متعقّب الإفراط في التخصيص للمستخدم على الاستعلام ذي أعلى نسبة الإفراط في التخصيص في قائمة استعلامات المستخدم.
تُحتسب نسبة الإفراط في التخصيص للاستعلام بقسمة عدد البايتات المخصّصة على قيمة الإعداد `memory_overcommit_ratio_denominator_for_user`.

إذا كانت قيمة `memory_overcommit_ratio_denominator_for_user` لهذا الاستعلام تساوي صفرًا، فلن يختار متعقّب الإفراط في التخصيص هذا الاستعلام.

تُضبط مهلة الانتظار بواسطة الإعداد `memory_usage_overcommit_max_wait_microseconds`.

**مثال**

```sql theme={null}
SELECT number FROM numbers(1000) GROUP BY number SETTINGS memory_overcommit_ratio_denominator_for_user=4000, memory_usage_overcommit_max_wait_microseconds=500
```

<div id="global-overcommit-tracker">
  ## متعقّب الإفراط في التخصيص العام
</div>

يعثر متعقّب الإفراط في التخصيص العام على الاستعلام صاحب أعلى نسبة الإفراط في التخصيص ضمن قائمة جميع الاستعلامات.
في هذه الحالة، تُحتسب نسبة الإفراط في التخصيص بقسمة عدد البايتات المخصّصة على قيمة الإعداد `memory_overcommit_ratio_denominator`.

إذا كانت قيمة `memory_overcommit_ratio_denominator` للاستعلام تساوي صفرًا، فلن يختار متعقّب الإفراط في التخصيص هذا الاستعلام.

تُحدَّد مهلة الانتظار بواسطة المعلَمة `memory_usage_overcommit_max_wait_microseconds` في ملف الإعدادات.
