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
——————————————————————————————————–
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.