پایگاه داده اوراکل multithreaded-execution-or-how-make-processes-decrease

processes:
Instance های پایگاه داده اوراکل بر روی سرورهای نوع Linux یا Unix از Server Process هایی تشکیل شده اند که بر عکس سرور های ویندوز که بصورت Multi Thread کار می کنند (به غیر از اوراکل ۷ که بر روی داس پیاده سازی می شد و بصورت Single Process کار می کرد.)به پایگاه داده اجازه می دهند تا به صورت Multi User فعالیت نمایند. افزایش تعداد Background Process ها باعث پشتیبانی از یک قابلیت جدید در نسخه ۱۲c شده است. در یک پایگاه داده با نصب ساده با اجرای دستور زیر متوجه خواهید شد که ۳۸ پردازش در حال ارائه خدمات می باشند.

اگر چندین پایگاه داده یک پارچه و بدون قابلیت Pluggable database داشته باشید متوجه خواهید شد که حتی بدون اتصال کاربر به پایگاه داده، دارای چند صد Process فعال خواهید بود. اما در اوراکل ۱۲c قابلیتی جدید معرفی شده است که قابلیت پشتیبانی از Multithreading به جای Process های قدیمی را به سیستم می دهد و باعث بهینه تر شدن سیستم در استفاده از فضای اشتراک گذاری شده و کاهش سربار خواهد شد.
فعال سازی Multithreaded Execution
به صورت پیش فرض این قابلیت فعال نمی باشد و در صورت نیاز می توانید از دستورات زیر برای فعال ساختن آن استفاده نمایید.
SQL> alter system set threaded_execution=true scope=spfile;

System altered.

و خط زیر را به فایل Listener.ora اضافه نمایید.
DEDICATED_THROUGH_BROKER_listener=on
(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

بعد از بازآوری مشاهده خواهید کرد که دستور قبل خروجی زیر را خواهد داشت:

پردازش های باقیمانده :

همانطور که درخروجی دستور فوق مشاهده می فرمایید پردازش های PMON،PSP0(Process Spawner) ,VKTM، DBW0 و دو پردازش جدید از نوع Multithread دیده می شود.

بدست آوردن اطلاعات دیگر پردازش ها:

این اطلاعات را می توانید از v$process که یک ویو می باشد بدست آورید. فیلد EXECUTION_TYPE نشان دهنده نوع این پردازشها می باشد که به دو نوع PROCESS و THREADتقسیم می شود و فیلد SPID مشخص می کند که کدام Process اجرا کننده آن می باشد.

Process ها:
حال اگر دستور زیر را اجرا کنید خروجی زیر را مشاهده خواهید کرد:

و با اجرای دستور زیر در سیستم عامل خروجی زیر را مشاهده خواهید کرد:

و در سمتی که session بر قرار شده است با اجرای دستور زیر خروجی زیر را مشاهده خواهید کرد و متوجه خواهید شد که تمام پردازش های بصورت Dedicated می باشند.

توجه داشته باشید که با فعال سازی قابلیت Multithreading امکان استفاده از OS authentication وجود نخواهد داشت و برای ورود به پایگاه داده حتی از پشت کنسول حتما نیاز به کلمه عبور خواهید داشت.

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