optimize_aggregators_of_group_by_keys
optimize_append_index
false.
القيم الممكنة:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- عدد صحيح موجب - الحد الأقصى لطول الاسم،
- 0 — دائمًا،
- عدد صحيح سالب - أبدًا.
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage.
القيم الممكنة:
- 0 — التحسين معطّل.
- 1 — التحسين مُمكّن.
optimize_dictget_tuple_element
tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) إلى dictGet('dict', 'b', key) لتجنّب جلب سمات القاموس غير الضرورية. يدعم الوصول الموضعي (.1, .2, …) والمُسمّى (.b)، ويَنطبق أيضًا على dictGetOrDefault عندما تكون وسيطة القيمة الافتراضية Tuple ثابتة أو tuple(...) مكوّنة من ثوابت.
optimize_distinct_in_order
optimize_distributed_group_by_sharding_key
GROUP BY sharding_key عبر تجنّب تنفيذ تجميع مكلف على الخادم البادئ، مما يقلّل استخدام الذاكرة للاستعلام على هذا الخادم.
الأنواع التالية من الاستعلامات مدعومة (بما في ذلك جميع التركيبات بينها):
SELECT DISTINCT [..., ]sharding_key[, ...] FROM distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — معطّل.
- 1 — مفعّل.
في الوقت الحالي، يتطلب هذا الخيار
optimize_skip_unused_shards (والسبب هو أنه قد يُفعَّل افتراضيًا في المستقبل، ولن يعمل بشكل صحيح إلا إذا أُدرجت البيانات عبر جدول Distributed، أي إذا كانت البيانات موزعة وفقًا لـ sharding_key).optimize_dry_run_check_part
OPTIMIZE ... DRY RUN من الجزء المدمج الناتج باستخدام checkDataPart. وإذا أخفق التحقق، يُطلَق استثناء.
optimize_empty_string_comparisons
col = '' أو '' = col إلى empty(col)، وcol != '' أو '' != col إلى notEmpty(col)،
وذلك فقط عندما يكون col من النوع String أو FixedString.
optimize_extract_common_expressions
(A AND B) OR (A AND C) إلى A AND (B OR C)، مما قد يساعد على الاستفادة من:
- الفهارس في تعبيرات التصفية البسيطة
- تحسين تحويل CROSS JOIN إلى INNER JOIN
optimize_functions_to_subcolumns
- length لقراءة العمود الفرعي size0.
- empty لقراءة العمود الفرعي size0.
- notEmpty لقراءة العمود الفرعي size0.
- isNull لقراءة العمود الفرعي null.
- isNotNull لقراءة العمود الفرعي null.
- count لقراءة العمود الفرعي null.
- mapKeys لقراءة العمود الفرعي keys.
- mapValues لقراءة العمود الفرعي values.
- 0 — التحسين معطّل.
- 1 — التحسين مُمكَّن.
optimize_inverse_dictionary_lookup
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — معطّل.
- 1 — مفعّل.
optimize_prewhere_after_pushdown
PREWHERE بعد أن تكون تحسينات لاحقة في خطة الاستعلام قد
أضافت عوامل تصفية أخرى فوق خطوة قراءة MergeTree (على سبيل المثال، دفع المسند عبر
JOIN وإعادات كتابة الإسقاط). وعند وجود PREWHERE حالي مسبقًا، يُدمَج عامل
التصفية الجديد فيه باستخدام AND بدلًا من أن يبقى كخطوة تصفية منفصلة.
optimize_qbit_distance_function_reads
QBit بما يكافئها من الدوال التي لا تقرأ من التخزين إلا الأعمدة اللازمة للحساب.
optimize_read_in_order
- 0 — يكون تحسين
ORDER BYمعطّلًا. - 1 — يكون تحسين
ORDER BYمفعّلًا.
optimize_respect_aliases
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
false.
القيم الممكنة:
- true, false
optimize_syntax_fuse_functions
- 0 — لا تُدمَج الدوال ذات الوسيطة نفسها.
- 1 — تُدمَج الدوال ذات الوسيطة نفسها.
optimize_throw_if_noop
OPTIMIZE بنجاح حتى إذا لم ينفّذ أي شيء. يتيح لك هذا الإعداد التمييز بين هذه الحالات ومعرفة السبب من خلال رسالة الاستثناء.
القيم الممكنة:
- 1 — تم تمكين رفع استثناء.
- 0 — تم تعطيل رفع استثناء.
optimize_time_filter_with_preimage
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
optimize_using_constraints
false.
القيم الممكنة:
- true, false