ClickHouse/docs/fa/operations/settings/query_complexity.md
2020-04-04 12:15:31 +03:00

19 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 59 محدودیت در پیچیدگی پرس و جو

محدودیت در پیچیدگی پرس و جو

محدودیت در پیچیدگی پرس و جو بخشی از تنظیمات. برای اجرای امن تر از رابط کاربر استفاده می شود. تقریبا تمام محدودیت ها فقط برای اعمال 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.

اساژ بیشینه

حداکثر مقدار رم برای استفاده برای اجرای پرس و جو بر روی یک سرور واحد.

در فایل پیکربندی پیش فرض, حداکثر است 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 = 0).

همچنین نگاه کنید به شرح اساژ بیشینه.

_شیشه بخاطر _خروج

حداکثر مقدار رم برای استفاده برای اجرای تمام نمایش داده شد بر روی یک سرور واحد.

مقادیر پیش فرض در تعریف تنظیمات.ه. به طور پیش فرض مقدار محدود نمی شود (max_memory_usage_for_all_queries = 0).

همچنین نگاه کنید به شرح اساژ بیشینه.

_گذرواژههای _ورود

محدودیت های زیر را می توان در هر بلوک بررسی (به جای در هر سطر). به این معنا که, محدودیت را می توان شکسته کمی. هنگامی که در حال اجرا یک پرس و جو در موضوعات مختلف, محدودیت های زیر به هر موضوع اعمال می شود به طور جداگانه.

حداکثر تعداد ردیف است که می تواند از یک جدول زمانی که در حال اجرا یک پرس و جو به عنوان خوانده شده.

_مخفی کردن

حداکثر تعداد بایت (داده های غیر فشرده) است که می تواند از یک جدول به عنوان خوانده شده در هنگام اجرای یک پرس و جو.

_ورود به سیستم

چه باید بکنید هنگامی که حجم داده ها به عنوان خوانده شده بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.

_رو_تو_گروهها

حداکثر تعداد کلید منحصر به فرد دریافت شده از تجمع. این تنظیم به شما امکان مصرف حافظه محدود در هنگام جمع.

_شماره _شماره گروه

چه باید بکنید هنگامی که تعدادی از کلید های منحصر به فرد برای تجمع بیش از حد: throw, break یا any. به طور پیش فرض, پرتاب. با استفاده از any ارزش شما اجازه می دهد یک تقریب از گروه های اجرا. کیفیت این تقریب بستگی به ماهیت استاتیک داده ها دارد.

ا_فزون_بر_گونهی_گونهی زیر_گروهها

فعالسازی یا غیرفعالسازی اعدام GROUP BY بند در حافظه خارجی. ببینید گروه در حافظه خارجی.

مقادیر ممکن:

  • حداکثر حجم رم (به بایت) است که می تواند توسط تک استفاده می شود GROUP BY عمل
  • 0 — GROUP BY در حافظه خارجی غیر فعال.

مقدار پیش فرض: 0.

_شماره بیشینه

حداکثر تعداد ردیف قبل از مرتب سازی. این اجازه می دهد تا شما را به محدود کردن مصرف حافظه در هنگام مرتب سازی.

ا_سلایدی

حداکثر تعداد بایت قبل از مرتب سازی.

کد_و_وشهیابی

چه باید بکنید اگر تعداد ردیف قبل از مرتب سازی دریافت بیش از یکی از محدودیت: throw یا break. به طور پیش فرض, پرتاب.

بارشهای بیشینه

محدود در تعداد ردیف در نتیجه. همچنین برای زیرمجموعه بررسی, و بر روی سرور از راه دور در هنگام اجرای بخش هایی از یک پرس و جو توزیع.

حداکثر_زمین بایت

محدود در تعداد بایت در نتیجه. همان تنظیمات قبلی.

_شماره حاصل

چه باید بکنید اگر حجم نتیجه بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.

با استفاده از break شبیه به استفاده از حد است. Break قطع اعدام تنها در سطح بلوک. این به این معنی است که مقدار ردیف بازگشت بیشتر از بارشهای بیشینه چندین ت_مایش بیشینه و بستگی دارد _مخفی کردن.

مثال:

SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';

SELECT *
FROM numbers_mt(100000)
FORMAT Null;

نتیجه:

6666 rows in set. ...

زمان _شنامهی حداکثر

حداکثر زمان اجرای پرس و جو در ثانیه. در این زمان برای یکی از مراحل مرتب سازی بررسی نمی شود و یا هنگام ادغام و نهایی کردن توابع کلی.

_شروع مجدد

چه باید بکنید اگر پرس و جو اجرا می شود بیش از max_execution_time: throw یا break. به طور پیش فرض, پرتاب.

_شروع مجدد

سرعت اجرای حداقل در ردیف در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای پایین تر است, یک استثنا پرتاب می شود.

ا_فزونهها

حداقل تعداد بایت اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای پایین تر است, یک استثنا پرتاب می شود.

حداکثر_حاقسازی سرعت

حداکثر تعداد ردیف اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای بالا است, سرعت اجرای کاهش خواهد یافت.

حداکثر_کشن_پیمایههای سرعت

حداکثر تعداد بایت اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که timeout_before_checking_execution_speed انقضا مییابد. اگر سرعت اجرای بالا است, سرعت اجرای کاهش خواهد یافت.

جستجو

چک که سرعت اجرای بیش از حد کند نیست (کمتر از min_execution_speed), پس از زمان مشخص شده در ثانیه تمام شده است.

_رنگ _ورود

حداکثر تعداد ستون است که می تواند از یک جدول در یک پرس و جو به عنوان خوانده شده. اگر پرس و جو نیاز به خواندن تعداد بیشتری از ستون, این می اندازد یک استثنا.

_رنگ بیشینه

حداکثر تعداد ستون موقت است که باید در رم در همان زمان نگه داشته شود که در حال اجرا یک پرس و جو, از جمله ستون ثابت. اگر ستون موقت بیش از این وجود دارد, این یک استثنا می اندازد.

_رنگ

همان چیزی که به عنوان max_temporary_columns, اما بدون شمارش ستون ثابت. توجه داشته باشید که ستون های ثابت در حال اجرا یک پرس و جو نسبتا اغلب تشکیل, اما نیاز به حدود صفر منابع محاسباتی.

حداکثر

حداکثر عمق تودرتو از کارخانه های فرعی. اگر کارخانه های فرعی عمیق تر, یک استثنا پرتاب می شود. به طور پیش فرض, 100.

حداکثر _پیپیلین

حداکثر عمق خط لوله. مربوط به تعدادی از تحولات که هر بلوک داده می رود از طریق در طول پردازش پرس و جو. شمارش در محدوده یک سرور واحد. اگر عمق خط لوله بیشتر است, یک استثنا پرتاب می شود. به طور پیش فرض 1000.

_ص_خلاف

حداکثر عمق تودرتو از یک درخت نحوی پرس و جو. اگر بیش از, یک استثنا پرتاب می شود. در این زمان در تجزیه بررسی نمی شود اما تنها پس از تجزیه پرس و جو. به این معنا که, یک درخت نحوی است که بیش از حد عمیق می تواند در طول تجزیه ایجاد, اما پرس و جو شکست مواجه خواهد شد. به طور پیش فرض 1000.

_محلولات حداکثر

حداکثر تعداد عناصر در یک درخت نحوی پرس و جو. اگر بیش از, یک استثنا پرتاب می شود. در همان راه به عنوان تنظیمات قبلی تنها پس از تجزیه پرس و جو بررسی می شود. به طور پیش فرض 50000.

_رو_ تنظیم

حداکثر تعداد ردیف برای یک مجموعه داده ها در بند در ایجاد شده از یک خرده فروشی.

تنظیم _سریع

حداکثر تعداد بایت (داده های غیر فشرده) استفاده شده توسط یک مجموعه در بند در ایجاد شده از یک خرده فروشی.

الت تنظیم

چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.

حوزه _کاربری مکس

حداکثر تعداد ردیف های مختلف در هنگام استفاده از متمایز.

مک_بتس_ حوزه

حداکثر تعداد بایت استفاده شده توسط یک جدول هش در هنگام استفاده متمایز.

_شروع مجدد

چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.

ترجمههای بیشینه

حداکثر تعداد ردیف است که می تواند به یک سرور از راه دور منتقل می شود و یا ذخیره شده در یک جدول موقت در هنگام استفاده از جهانی در.

ترجمههای بیشینه

حداکثر تعداد بایت (داده های غیر فشرده) است که می تواند به یک سرور از راه دور منتقل می شود و یا ذخیره شده در یک جدول موقت در هنگام استفاده از جهانی در.

_شروع مجدد

چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: throw یا break. به طور پیش فرض, پرتاب.

اک کردن _روشن گرافیک

محدودیت تعداد ردیف در جدول هش استفاده شده است که در هنگام پیوستن به جداول.

این تنظیمات در مورد SELECT … JOIN عملیات و پیوستن موتور جدول.

اگر یک پرس و جو شامل چند می پیوندد, خانه چک این تنظیم برای هر نتیجه متوسط.

تاتر می توانید با اقدامات مختلف ادامه دهید زمانی که از حد رسیده است. استفاده از _شروع مجدد تنظیم برای انتخاب عمل.

مقادیر ممکن:

  • عدد صحیح مثبت.
  • 0 — Unlimited number of rows.

مقدار پیش فرض: 0.

_پویش همیشگی

محدودیت اندازه در بایت از جدول هش استفاده می شود در هنگام پیوستن به جداول.

این تنظیمات در مورد SELECT … JOIN عملیات و پیوستن به موتور جدول.

اگر پرس و جو شامل می پیوندد, کلیک چک این تنظیمات برای هر نتیجه متوسط.

تاتر می توانید با اقدامات مختلف ادامه دهید زمانی که از حد رسیده است. استفاده _شروع مجدد تنظیمات برای انتخاب عمل.

مقادیر ممکن:

  • عدد صحیح مثبت.
  • 0 — Memory control is disabled.

مقدار پیش فرض: 0.

_شروع مجدد

تعریف می کند که چه عمل کلیک انجام زمانی که هر یک از محدودیت های زیر ملحق رسیده است:

مقادیر ممکن:

  • THROW — ClickHouse throws an exception and breaks operation.
  • BREAK — ClickHouse breaks operation and doesn't throw an exception.

مقدار پیشفرض: THROW.

همچنین نگاه کنید

_مسدود کردن بیشینه

حداکثر تعداد پارتیشن در یک بلوک قرار داده شده را محدود می کند.

  • عدد صحیح مثبت.
  • 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).”

مقاله اصلی