artarad-oracle-database

DOP (درجه همروندی خودکار) – آستانه همروندی در پایگاه داده اوراکل نسخه ۱۱g

DOP (درجه همروندی خودکار) – آستانه همروندی در پایگاه داده اوراکل نسخه ۱۱g

در پایگاه داده اوراکل نسخه ۱۱g قابلیت DOP خودکار یا محاسبه خودکار درجه همروندی یک فرآیند توسط بهینه ساز در صورت تنظیم پارامتر PARALLEL_DEGREE_POLICY = AUTO ارایه شده است.
پیش از انتخاب DOP، بهینه ساز اقدام به نیاز سنجی استفاده از پردازش های همروند برای دستورات را بررسی می‌نماید.


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

نحوه اجرا:
تنظیم پارامتر parallel_min_time_threshold = 10 ، بر این اساس در صورتی که زمان تخمینی اجرا بیش از ۱۰ ثانیه به طول بانجامد دستور به صورت هم روند اجرا خواهد شد.

SYS>alter system set parallel_degree_policy=auto;

alter system set parallel_min_time_threshold = 10;

sho parameter parallel;

NAME TYPE VALUE

———————————— ———– —————

fast_start_parallel_rollback string LOW

parallel_adaptive_multi_user boolean TRUE

parallel_automatic_tuning boolean FALSE

parallel_degree_limit string CPU

parallel_degree_policy string AUTO

parallel_execution_message_size integer 16384

parallel_force_local boolean FALSE

parallel_instance_group string

parallel_io_cap_enabled boolean FALSE

parallel_max_servers integer 20

parallel_min_percent integer 0

NAME TYPE VALUE

———————————— ———– —————

parallel_min_servers integer 0

parallel_min_time_threshold string 10

parallel_server boolean FALSE

parallel_server_instances integer 1

parallel_servers_target integer 6

parallel_threads_per_cpu integer 2

recovery_parallelism integer 0

مقدار Execution Plan دستور را به دست آورید.
توجه شود که Execution Plan از سرور همروند استفاده می‌کند و همانطور که sh.sales یک جدول بزرگ است و درخواست در صورت اجرای متوالی بیش از ۱۰ ثانیه طول می‌کشد.

SYS>set line 500

explain plan for

select * from sh.sales

order by 1,2,3,4;

select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

—————————————————————————————————————————————–

Plan hash value: 2055439529

—————————————————————————————————————————————–

| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |

—————————————————————————————————————————————–

| ۰ | SELECT STATEMENT | | 918K| 25M| | 297 (11)| 00:00:04 | | | | | |

| ۱ | PX COORDINATOR | | | | | | | | | | | |

| ۲ | PX SEND QC (ORDER) | :TQ10001 | 918K| 25M| | 297 (11)| 00:00:04 | | | Q1,01 | P->S | QC (ORDER) |

| ۳ | SORT ORDER BY | | 918K| 25M| 42M| 297 (11)| 00:00:04 | | | Q1,01 | PCWP | |

| ۴ | PX RECEIVE | | 918K| 25M| | 274 (3)| 00:00:04 | | | Q1,01 | PCWP | |

| ۵ | PX SEND RANGE | :TQ10000 | 918K| 25M| | 274 (3)| 00:00:04 | | | Q1,00 | P->P | RANGE |

PLAN_TABLE_OUTPUT

—————————————————————————————————————————————–

| ۶ | PX BLOCK ITERATOR | | 918K| 25M| | 274 (3)| 00:00:04 | 1 | 28 | Q1,00 | PCWC | |

| ۷ | TABLE ACCESS FULL| SALES | 918K| 25M| | 274 (3)| 00:00:04 | 1 | 28 | Q1,00 | PCWP | |

—————————————————————————————————————————————–

اکنون با تنظیم پارامتر parallel_min_time_threshold = 3600 درخواست با نحوه اجرای متوالی به طور همروند انجام می‌شود و مدت اجرا بیش از یک ساعت می‌باشد.

SQL> alter system set parallel_min_time_threshold=3600;

sho parameter parallel

NAME TYPE VALUE

———————————— ———– ——————————

fast_start_parallel_rollback string LOW

parallel_adaptive_multi_user boolean TRUE

parallel_automatic_tuning boolean FALSE

parallel_degree_limit string CPU

parallel_degree_policy string AUTO

parallel_execution_message_size integer 16384

parallel_force_local boolean FALSE

parallel_instance_group string

parallel_io_cap_enabled boolean FALSE

parallel_max_servers integer 20

parallel_min_percent integer 0

NAME TYPE VALUE

———————————— ———– ——————————

parallel_min_servers integer 0

parallel_min_time_threshold string 3600

parallel_server boolean FALSE

parallel_server_instances integer 1

parallel_servers_target integer 6

parallel_threads_per_cpu integer 2

recovery_parallelism integer 0

بررسی Execution Plan اجرای متوالی که در کمتر از یک ساعت انجام می‌شود.

SQL> set line 500

explain plan for

select * from sh.sales

order by 1,2,3,4;

select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

——————————————————————————————————–

Plan hash value: 3803407550

——————————————————————————————————

| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop |

——————————————————————————————————

| ۰ | SELECT STATEMENT | | 918K| 25M| | 7826 (1)| 00:01:34 | | |

| ۱ | SORT ORDER BY | | 918K| 25M| 42M| 7826 (1)| 00:01:34 | | |

| ۲ | PARTITION RANGE ALL| | 918K| 25M| | 494 (3)| 00:00:06 | 1 | 28 |

| ۳ | TABLE ACCESS FULL | SALES | 918K| 25M| | 494 (3)| 00:00:06 | 1 | 28 |

——————————————————————————————————

PLAN_TABLE_OUTPUT

——————————————————————————————————–

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *