تتوفر هذه الإعدادات في system.settings، ويجري توليدها تلقائيًا من الشيفرة المصدرية.
force_aggregate_partitions_independently
يفرض استخدام هذا التحسين عندما يكون قابلاً للتطبيق، حتى إذا قررت الآلية الاستدلالية عدم استخدامه
force_aggregation_in_order
يستخدم الخادم هذا الإعداد نفسه لدعم الاستعلامات الموزعة. لا تغيّره يدويًا، لأن ذلك سيؤدي إلى تعطيل العمليات العادية. (يفرض استخدام تجميع in order على العُقد البعيدة أثناء التجميع الموزّع).
force_creating_set_partitions_independently
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 26.8 | 0 | إعداد جديد لفرض إزالة التكرار المسبقة لكل قسم عند إنشاء مجموعة `IN (subquery)`، حتى عندما يؤدي فحص انحراف الأقسام إلى تجاوزها. |
يفرض إزالة التكرار المسبقة لكل قسم عند إنشاء مجموعة IN (subquery) عندما تكون قابلة للتطبيق، لكن فحص انحراف الأقسام (عندما يزيد أكبر قسم على ضعف المتوسط) قرر عدم استخدامها. لا يتجاوز سوى فحص الانحراف الخاص بـ allow_creating_set_partitions_independently؛ بينما تظل الشروط الأخرى سارية.
force_data_skipping_indices
يعطّل تنفيذ الاستعلام إذا لم تُستخدم فهارس تخطي البيانات المحددة.
ضع في اعتبارك المثال التالي:
CREATE TABLE data
(
key Int,
d1 Int,
d1_null Nullable(Int),
INDEX d1_idx d1 TYPE minmax GRANULARITY 1,
INDEX d1_null_idx assumeNotNull(d1_null) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;
SELECT * FROM data_01515;
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices=''; -- query will produce CANNOT_PARSE_TEXT error.
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices='d1_idx'; -- query will produce INDEX_NOT_USED error.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='d1_idx'; -- Ok.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`'; -- Ok (example of full featured parser).
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- query will produce INDEX_NOT_USED error, since d1_null_idx is not used.
SELECT * FROM data_01515 WHERE d1 = 0 AND assumeNotNull(d1_null) = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- Ok.force_distinct_partitions_independently
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 26.8 | 0 | إعداد جديد لفرض التقييم المستقل لـ `DISTINCT` لكل قسم، حتى عندما تتجاوزه آلية استدلالية للتكلفة. |
يفرض تقييماً مستقلاً لـ DISTINCT لكل قسم عندما يكون قابلاً للتطبيق، لكن آلية استدلالية للتكلفة قررت عدم استخدامه. لا يتجاوز سوى آلية استدلالية للتكلفة لإعداد allow_distinct_partitions_independently؛ وتظل الشروط الأخرى سارية.
force_grouping_standard_compatibility
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 22.9 | 1 | اجعل ناتج الدالة GROUPING مطابقًا لما هو عليه في معيار SQL وفي أنظمة DBMS الأخرى |
اجعل الدالة GROUPING تُرجِع 1 عندما لا تُستخدَم الوسيطة كمفتاح للتجميع
force_index_by_date
يعطّل تنفيذ الاستعلام إذا تعذّر استخدام الفهرس حسب التاريخ.
يعمل مع الجداول من عائلة MergeTree.
إذا كانت قيمة force_index_by_date=1، يتحقق ClickHouse مما إذا كان الاستعلام يحتوي على شرط لمفتاح التاريخ يمكن استخدامه لتقييد نطاقات البيانات. وإذا لم يوجد شرط مناسب، فإنه يطلق استثناءً. ومع ذلك، فهو لا يتحقق مما إذا كان الشرط يقلّل كمية البيانات المطلوب قراءتها. على سبيل المثال، يكون الشرط Date != ' 2000-01-01 ' مقبولًا حتى عندما يطابق جميع البيانات في الجدول (أي إن تشغيل الاستعلام يتطلب فحصًا كاملًا). لمزيد من المعلومات حول نطاقات البيانات في جداول MergeTree، راجع MergeTree.
force_primary_key
يعطّل تنفيذ الاستعلام إذا لم تكن الفهرسة باستخدام المفتاح الأساسي ممكنة.
يعمل مع الجداول في عائلة MergeTree.
إذا كانت force_primary_key=1، فإن ClickHouse يتحقق مما إذا كان الاستعلام يحتوي على شرط على المفتاح الأساسي يمكن استخدامه لتقييد نطاقات البيانات. وإذا لم يكن هناك شرط مناسب، فسيؤدي ذلك إلى طرح استثناء. ومع ذلك، فهو لا يتحقق مما إذا كان هذا الشرط يقلّل كمية البيانات المطلوب قراءتها. لمزيد من المعلومات حول نطاقات البيانات في جداول MergeTree، راجع MergeTree.
force_read_through_distributed_cache
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 26.9 | auto | إعداد جديد يتجاوز إعداد الخادم `enable_read_through_distributed_cache` لاستعلام واحد. |
| 26.8 | auto | إعداد جديد يتجاوز إعداد الخادم `enable_read_through_distributed_cache` لاستعلام واحد. |
لا يسري هذا الإعداد إلا في ClickHouse Cloud. وهو يتجاوز إعداد الخادم enable_read_through_distributed_cache لاستعلام واحد. وتعني القيمة auto (الافتراضية) اتباع إعداد الخادم.
force_remove_data_recursively_on_drop
يزيل البيانات تعاوديًا عند تنفيذ استعلام DROP. يتجنب خطأ 'المجلد غير فارغ'، لكنه قد يزيل البيانات المفصولة بصمت
force_window_partitions_independently
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 26.8 | 0 | إعداد جديد لفرض تقييم دوال النافذة بشكل مستقل لكل قسم، حتى عندما تقرر آلية استدلالية للتكلفة تخطيه. |
يفرض تقييم دوال النافذة بشكل مستقل لكل قسم عندما يكون ذلك ممكنًا، لكن آلية استدلالية للتكلفة قررت عدم استخدامه. لا يتجاوز سوى آلية استدلالية للتكلفة الخاصة بـ allow_window_partitions_independently؛ وتظل الشروط الأخرى سارية.
force_write_through_distributed_cache
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 26.9 | auto | إعداد جديد يتجاوز إعداد الخادم `enable_write_through_distributed_cache` لاستعلام واحد. |
| 26.8 | auto | إعداد جديد يتجاوز إعداد الخادم `enable_write_through_distributed_cache` لاستعلام واحد. |
لا يسري إلا في ClickHouse Cloud. يتجاوز إعداد الخادم enable_write_through_distributed_cache لاستعلام واحد. وتعني القيمة auto (الافتراضية) استخدام إعداد الخادم.