Oracle Auto Degree of Parallelism (Auto DoP)

Herkese selam,

Bugün size Oracle’ın 11g Release 2 ile beraber gelen yeni özelliği Automatic Degree of Parallism(Auto DoP) özelliğinden bahsedicem.

Auto DoP, uzun sürecek database operasyonlarımız için donanım kaynağımızı tüketim konusunda zor sokmayacak şekilde ilgili işlem  için uygun parallelik seviyesi hesaplayan akıllı bir mekanizmadır.

kaynak: https://blogs.oracle.com/datawarehousing/entry/auto_dop_and_parallel_statemen

Şekilden’de anlaşılacağı üzere gelen SQL statement’ımızın optimizer tarafından seri bir execution  planı çıkarılır bu seri çıkarılan execution  plana istinaden optimizer bu SQL statement için birde çalışma zamanı tahmin eder. Bu sorgu için tahmin edilen zaman eğer sistemde tanımlı sorgu threshould değerinden küçükse bu SQL statement seri olarak çalıştırılır. Threshould değeri sistemdeki PARALLEL_MIN_TIME_THRESHOLD parametresi ile belirlenmektedir (v$parameters viewından current durumuna bakılabilir bu parametrenin). Bu parametre default olarak 11g Release 2’de 30 sn olarak gelmektedir. İstenildiği takdirde bu değer manualde set edilebilir. Eğer seri plan için hesaplanan değer PARALLEL_MIN_TIME_THRESHOLD parametresinin değerinden yani threshold değerinden büyükse bu statement Parallel çalıştırılmak üzere aday bir sorgu olmaktadır. (Buradanda anlaşılacağı üzere PARALLEL_MIN_TIME_THRESHOLD değeri ne kadar düşük ise sorgularımızın paralel çalışma olasılığı okadar çok diyebiliriz.) Bu durumdan sonra optimizer bu statement  için, statement’ın yapacağı table scan operasyonlarınıda göz önünde bulundurarak bir ideal DoP hesaplar, ideal DoP hesaplandıktan sonra geriye PARALLEL_DEGREE_LIMIT değeri ile kendi hesapladığı parallelik seviyesinin minimumunu bulmak kalıyor. Oracle bu minimum değeri, sistemdeki avaliable kaynakları kontrollü bir şekilde tüketmek için yapmakta. Buradaki PARALLEL_DEGREE_LIMIT database yöneticisi tarafından manual olarak editlenebileceği gibi Auto olarakta sistem tarafından hesaplatılabilir. Bu değerin default u ise  => PARALLEL_THREADS_PER_CPU x CPU_COUNT x INSTANCE_COUNT x INSTANCE_COUNT’dur. (Aslında bu minimum bulma işleminden anladığımız üzere statement’ın çalışacağı paralellik maximum PARALLEL_DEGREE_LIMIT kadardır.)  Bu işlemden sonra statement’ın çalıştırılacağı DoP değeri hesaplanmış olur ve sorgunun bu parallelikte execution planı çıkarılır ve işlem sonlandırılır.

Oracle’ın Auto DoP özelliği PARALLEL_DEGREE_POLICY parametresinin değerine göre kullanıma açılabilmektedir. Bu parametrenin LIMITED veya AUTO olarak set edilmesi durumunda bu özellik kullanılabilmektedir. MANUAL olarak set edilirse database’imizin Auto DoP, Parallel Statement Queue ve In Memory Parallel Execution özelliklerini kullanamamaktayız. Limited olarak setler isek yalnızca Auto DoP özelliğini kullanabiliyoruz. Auto olarak setlersek Auto DoP,  Parallel Statement Queue ve In Memory Parallel Execution özelliklerini  kullanabilmekteyiz.

 

Advertisements

About ... from Emrah METE

Bilgisayar Mühendisi
This entry was posted in Oracle, Uncategorized and tagged , , , , , , , , , . Bookmark the permalink.

One Response to Oracle Auto Degree of Parallelism (Auto DoP)

  1. Pingback: Oracle Parallel Statement Queue (PSQ) | Emrah METE

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s