ClickHouse/docs/fa/operations/settings/query-complexity.md
2020-10-13 20:23:29 +03:00

303 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
machine_translated: true
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
toc_priority: 59
toc_title: "\u0645\u062D\u062F\u0648\u062F\u06CC\u062A \u062F\u0631 \u067E\u06CC\u0686\
\u06CC\u062F\u06AF\u06CC \u067E\u0631\u0633 \u0648 \u062C\u0648"
---
# محدودیت در پیچیدگی پرس و جو {#restrictions-on-query-complexity}
محدودیت در پیچیدگی پرس و جو بخشی از تنظیمات.
برای اجرای امن تر از رابط کاربر استفاده می شود.
تقریبا تمام محدودیت ها فقط برای اعمال `SELECT`. برای پردازش پرس و جو توزیع, محدودیت بر روی هر سرور به طور جداگانه اعمال.
خانه را کلیک کنید چک محدودیت برای قطعات داده, نه برای هر سطر. این بدان معنی است که شما می توانید ارزش محدودیت با اندازه بخش داده ها تجاوز.
محدودیت در “maximum amount of something” می توانید مقدار را 0, که به معنی “unrestricted”.
اکثر محدودیت ها نیز دارند overflow_mode محیط, به این معنی چه باید بکنید هنگامی که از حد فراتر رفته است.
این می تواند یکی از دو مقدار را: `throw` یا `break`. محدودیت در تجمع (کد _شورت_فلو_وشه گروه) نیز ارزش داشته باشد `any`.
`throw` Throw an exception (default).
`break` Stop executing the query and return the partial result, as if the source data ran out.
`any (only for group_by_overflow_mode)` Continuing aggregation for the keys that got into the set, but don't add new keys to the set.
## _کاساژ بیشینه {#settings_max_memory_usage}
حداکثر مقدار رم برای استفاده برای اجرای پرس و جو بر روی یک سرور واحد.
در فایل پیکربندی پیش فرض, حداکثر است 10 گیگابایت.
تنظیم می کند حجم حافظه در دسترس و یا حجم کل حافظه بر روی دستگاه در نظر نمی.
محدودیت شامل یک پرس و جو تنها در یک سرور.
شما می توانید استفاده کنید `SHOW PROCESSLIST` برای دیدن مصرف حافظه فعلی برای هر پرس و جو.
بعلاوه, مصرف حافظه اوج برای هر پرس و جو ردیابی و نوشته شده به ورود به سیستم.
استفاده از حافظه برای ایالت های توابع مجموع خاص نظارت نیست.
استفاده از حافظه به طور کامل برای ایالت ها از توابع کل ردیابی نیست `min`, `max`, `any`, `anyLast`, `argMin`, `argMax` از `String` و `Array` بحث کردن.
مصرف حافظه نیز توسط پارامترها محدود شده است `max_memory_usage_for_user` و `max_memory_usage_for_all_queries`.
## _شمارهگیر بیشینه {#max-memory-usage-for-user}
حداکثر مقدار رم برای استفاده برای اجرای نمایش داده شد کاربر بر روی یک سرور واحد.
مقادیر پیش فرض در تعریف [تنظیمات.ه](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.h#L288). به طور پیش فرض مقدار محدود نمی شود (`max_memory_usage_for_user = 0`).
همچنین نگاه کنید به شرح [اساژ بیشینه](#settings_max_memory_usage).
## _شیشه بخاطر _خروج {#max-memory-usage-for-all-queries}
حداکثر مقدار رم برای استفاده برای اجرای تمام نمایش داده شد بر روی یک سرور واحد.
مقادیر پیش فرض در تعریف [تنظیمات.ه](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.h#L289). به طور پیش فرض مقدار محدود نمی شود (`max_memory_usage_for_all_queries = 0`).
همچنین نگاه کنید به شرح [اساژ بیشینه](#settings_max_memory_usage).
## _گذرواژههای _ورود {#max-rows-to-read}
محدودیت های زیر را می توان در هر بلوک بررسی (به جای در هر سطر). به این معنا که, محدودیت را می توان شکسته کمی.
هنگامی که در حال اجرا یک پرس و جو در موضوعات مختلف, محدودیت های زیر به هر موضوع اعمال می شود به طور جداگانه.
حداکثر تعداد ردیف است که می تواند از یک جدول زمانی که در حال اجرا یک پرس و جو به عنوان خوانده شده.
## _مخفی کردن {#max-bytes-to-read}
حداکثر تعداد بایت (داده های غیر فشرده) است که می تواند از یک جدول به عنوان خوانده شده در هنگام اجرای یک پرس و جو.
## _ورود به سیستم {#read-overflow-mode}
چه باید بکنید هنگامی که حجم داده ها به عنوان خوانده شده بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.
## _رو_تو_گروهها {#settings-max-rows-to-group-by}
حداکثر تعداد کلید منحصر به فرد دریافت شده از تجمع. این تنظیم به شما امکان مصرف حافظه محدود در هنگام جمع.
## _شماره _شماره گروه {#group-by-overflow-mode}
چه باید بکنید هنگامی که تعدادی از کلید های منحصر به فرد برای تجمع بیش از حد: throw, break یا any. به طور پیش فرض, پرتاب.
با استفاده از any ارزش شما اجازه می دهد یک تقریب از گروه های اجرا. کیفیت این تقریب بستگی به ماهیت استاتیک داده ها دارد.
## ا_فزون_بر_گونهی_گونهی زیر_گروهها {#settings-max_bytes_before_external_group_by}
فعالسازی یا غیرفعالسازی اعدام `GROUP BY` بند در حافظه خارجی. ببینید [گروه در حافظه خارجی](../../sql-reference/statements/select/group-by.md#select-group-by-in-external-memory).
مقادیر ممکن:
- حداکثر حجم رم (به بایت) است که می تواند توسط تک استفاده می شود [GROUP BY](../../sql-reference/statements/select/group-by.md#select-group-by-clause) عمل
- 0 — `GROUP BY` در حافظه خارجی غیر فعال.
مقدار پیش فرض: 0.
## _شماره بیشینه {#max-rows-to-sort}
حداکثر تعداد ردیف قبل از مرتب سازی. این اجازه می دهد تا شما را به محدود کردن مصرف حافظه در هنگام مرتب سازی.
## ا_سلایدی {#max-bytes-to-sort}
حداکثر تعداد بایت قبل از مرتب سازی.
## کد_و_وشهیابی {#sort-overflow-mode}
چه باید بکنید اگر تعداد ردیف قبل از مرتب سازی دریافت بیش از یکی از محدودیت: throw یا break. به طور پیش فرض, پرتاب.
## بارشهای بیشینه {#setting-max_result_rows}
محدود در تعداد ردیف در نتیجه. همچنین برای زیرمجموعه بررسی, و بر روی سرور از راه دور در هنگام اجرای بخش هایی از یک پرس و جو توزیع.
## حداکثر_زمین بایت {#max-result-bytes}
محدود در تعداد بایت در نتیجه. همان تنظیمات قبلی.
## _شماره حاصل {#result-overflow-mode}
چه باید بکنید اگر حجم نتیجه بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.
با استفاده از break شبیه به استفاده از حد است. `Break` قطع اعدام تنها در سطح بلوک. این به این معنی است که مقدار ردیف بازگشت بیشتر از [بارشهای بیشینه](#setting-max_result_rows) چندین [ت_مایش بیشینه](settings.md#setting-max_block_size) و بستگی دارد [_مخفی کردن](settings.md#settings-max_threads).
مثال:
``` sql
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';
SELECT *
FROM numbers_mt(100000)
FORMAT Null;
```
نتیجه:
``` text
6666 rows in set. ...
```
## زمان _شنامهی حداکثر {#max-execution-time}
حداکثر زمان اجرای پرس و جو در ثانیه.
در این زمان برای یکی از مراحل مرتب سازی بررسی نمی شود و یا هنگام ادغام و نهایی کردن توابع کلی.
## _شروع مجدد {#timeout-overflow-mode}
چه باید بکنید اگر پرس و جو اجرا می شود بیش از max_execution_time: throw یا break. به طور پیش فرض, پرتاب.
## _شروع مجدد {#min-execution-speed}
سرعت اجرای حداقل در ردیف در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای پایین تر است, یک استثنا پرتاب می شود.
## ا_فزونهها {#min-execution-speed-bytes}
حداقل تعداد بایت اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای پایین تر است, یک استثنا پرتاب می شود.
## حداکثر_حاقسازی سرعت {#max-execution-speed}
حداکثر تعداد ردیف اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای بالا است, سرعت اجرای کاهش خواهد یافت.
## حداکثر_کشن_پیمایههای سرعت {#max-execution-speed-bytes}
حداکثر تعداد بایت اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای بالا است, سرعت اجرای کاهش خواهد یافت.
## جستجو {#timeout-before-checking-execution-speed}
چک که سرعت اجرای بیش از حد کند نیست (کمتر از min_execution_speed), پس از زمان مشخص شده در ثانیه تمام شده است.
## _رنگ _ورود {#max-columns-to-read}
حداکثر تعداد ستون است که می تواند از یک جدول در یک پرس و جو به عنوان خوانده شده. اگر پرس و جو نیاز به خواندن تعداد بیشتری از ستون, این می اندازد یک استثنا.
## _رنگ بیشینه {#max-temporary-columns}
حداکثر تعداد ستون موقت است که باید در رم در همان زمان نگه داشته شود که در حال اجرا یک پرس و جو, از جمله ستون ثابت. اگر ستون موقت بیش از این وجود دارد, این یک استثنا می اندازد.
## _رنگ {#max-temporary-non-const-columns}
همان چیزی که به عنوان max_temporary_columns, اما بدون شمارش ستون ثابت.
توجه داشته باشید که ستون های ثابت در حال اجرا یک پرس و جو نسبتا اغلب تشکیل, اما نیاز به حدود صفر منابع محاسباتی.
## حداکثر {#max-subquery-depth}
حداکثر عمق تودرتو از کارخانه های فرعی. اگر کارخانه های فرعی عمیق تر, یک استثنا پرتاب می شود. به طور پیش فرض, 100.
## حداکثر _پیپیلین {#max-pipeline-depth}
حداکثر عمق خط لوله. مربوط به تعدادی از تحولات که هر بلوک داده می رود از طریق در طول پردازش پرس و جو. شمارش در محدوده یک سرور واحد. اگر عمق خط لوله بیشتر است, یک استثنا پرتاب می شود. به طور پیش فرض 1000.
## _ص_خلاف {#max-ast-depth}
حداکثر عمق تودرتو از یک درخت نحوی پرس و جو. اگر بیش از, یک استثنا پرتاب می شود.
در این زمان در تجزیه بررسی نمی شود اما تنها پس از تجزیه پرس و جو. به این معنا که, یک درخت نحوی است که بیش از حد عمیق می تواند در طول تجزیه ایجاد, اما پرس و جو شکست مواجه خواهد شد. به طور پیش فرض 1000.
## _محلولات حداکثر {#max-ast-elements}
حداکثر تعداد عناصر در یک درخت نحوی پرس و جو. اگر بیش از, یک استثنا پرتاب می شود.
در همان راه به عنوان تنظیمات قبلی تنها پس از تجزیه پرس و جو بررسی می شود. به طور پیش فرض 50000.
## _رو_ تنظیم {#max-rows-in-set}
حداکثر تعداد ردیف برای یک مجموعه داده ها در بند در ایجاد شده از یک خرده فروشی.
## تنظیم _سریع {#max-bytes-in-set}
حداکثر تعداد بایت (داده های غیر فشرده) استفاده شده توسط یک مجموعه در بند در ایجاد شده از یک خرده فروشی.
## _حالت تنظیم {#set-overflow-mode}
چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.
## حوزه _کاربری مکس {#max-rows-in-distinct}
حداکثر تعداد ردیف های مختلف در هنگام استفاده از متمایز.
## مک_بتس_ حوزه {#max-bytes-in-distinct}
حداکثر تعداد بایت استفاده شده توسط یک جدول هش در هنگام استفاده متمایز.
## _شروع مجدد {#distinct-overflow-mode}
چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.
## ترجمههای بیشینه {#max-rows-to-transfer}
حداکثر تعداد ردیف است که می تواند به یک سرور از راه دور منتقل می شود و یا ذخیره شده در یک جدول موقت در هنگام استفاده از جهانی در.
## ترجمههای بیشینه {#max-bytes-to-transfer}
حداکثر تعداد بایت (داده های غیر فشرده) است که می تواند به یک سرور از راه دور منتقل می شود و یا ذخیره شده در یک جدول موقت در هنگام استفاده از جهانی در.
## _شروع مجدد {#transfer-overflow-mode}
چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.
## _پاک کردن _روشن گرافیک {#settings-max_rows_in_join}
محدودیت تعداد ردیف در جدول هش استفاده شده است که در هنگام پیوستن به جداول.
این تنظیمات در مورد [SELECT … JOIN](../../sql-reference/statements/select/join.md#select-join) عملیات و [پیوستن](../../engines/table-engines/special/join.md) موتور جدول.
اگر یک پرس و جو شامل چند می پیوندد, خانه چک این تنظیم برای هر نتیجه متوسط.
تاتر می توانید با اقدامات مختلف ادامه دهید زمانی که از حد رسیده است. استفاده از [_شروع مجدد](#settings-join_overflow_mode) تنظیم برای انتخاب عمل.
مقادیر ممکن:
- عدد صحیح مثبت.
- 0 — Unlimited number of rows.
مقدار پیش فرض: 0.
## _پویش همیشگی {#settings-max_bytes_in_join}
محدودیت اندازه در بایت از جدول هش استفاده می شود در هنگام پیوستن به جداول.
این تنظیمات در مورد [SELECT … JOIN](../../sql-reference/statements/select/join.md#select-join) عملیات و [پیوستن به موتور جدول](../../engines/table-engines/special/join.md).
اگر پرس و جو شامل می پیوندد, کلیک چک این تنظیمات برای هر نتیجه متوسط.
تاتر می توانید با اقدامات مختلف ادامه دهید زمانی که از حد رسیده است. استفاده [_شروع مجدد](#settings-join_overflow_mode) تنظیمات برای انتخاب عمل.
مقادیر ممکن:
- عدد صحیح مثبت.
- 0 — Memory control is disabled.
مقدار پیش فرض: 0.
## _شروع مجدد {#settings-join_overflow_mode}
تعریف می کند که چه عمل کلیک انجام زمانی که هر یک از محدودیت های زیر ملحق رسیده است:
- [_پویش همیشگی](#settings-max_bytes_in_join)
- [اک کردن _روشن گرافیک](#settings-max_rows_in_join)
مقادیر ممکن:
- `THROW` — ClickHouse throws an exception and breaks operation.
- `BREAK` — ClickHouse breaks operation and doesn't throw an exception.
مقدار پیشفرض: `THROW`.
**همچنین نگاه کنید به**
- [پیوستن بند](../../sql-reference/statements/select/join.md#select-join)
- [پیوستن به موتور جدول](../../engines/table-engines/special/join.md)
## _مسدود کردن بیشینه {#max-partitions-per-insert-block}
حداکثر تعداد پارتیشن در یک بلوک قرار داده شده را محدود می کند.
- عدد صحیح مثبت.
- 0 — Unlimited number of partitions.
مقدار پیش فرض: 100.
**اطلاعات دقیق**
هنگام قرار دادن داده ها, تاتر محاسبه تعداد پارتیشن در بلوک قرار داده. اگر تعداد پارتیشن ها بیش از `max_partitions_per_insert_block`, خانه را کلیک می اندازد یک استثنا با متن زیر:
> “Too many partitions for single INSERT block (more than” اطلاعات دقیق “). The limit is controlled by max_partitions_per_insert_block setting. A large number of partitions is a common misconception. It will lead to severe negative performance impact, including slow server startup, slow INSERT queries and slow SELECT queries. Recommended total number of partitions for a table is under 1000..10000. Please note, that partitioning is not intended to speed up SELECT queries (ORDER BY key is sufficient to make range queries fast). Partitions are intended for data manipulation (DROP PARTITION, etc).”
[مقاله اصلی](https://clickhouse.tech/docs/en/operations/settings/query_complexity/) <!--hide-->