The PGA : The Oracle User's Memory Area
ساختار دیگر حافظه در اراکل Program Global Area نام دارد. که کار آن نگهداشتن مقادیر متغییرهای تعریف شده توسط کاربران میباشد. اطلاعات هر کاربر نمیتواند Share باشد و باید فضای مخصوص به خودش را داشته باشد چون مقادیر واقعی متغییرهای درخواست شده توسط کاربر در این قسمت یافت میشود.
Structures That Connect Users to Oracle Servers
اولین مرحله ای که درخواست کاربر به آن میرسد Oracle Listener میباشد که بر روی پورت خاصی به درخواستهای کاربران گوش میکند. وقتی که درخواست کاربر به اراکل Listener رسید، امکان انجام شدن دو عمل وجود دارد. اگر اراکل از Dedicated server استفاده میکند، Listener به اراکل دستور ایجاد یک Dedicated Server را میدهد و سپس درخواست کاربر را به آن واگذار میکند. اگر Multi Thread Server مورد استفاده اراکل باشد، Listener درخواست کاربر را به به یک پردازشگر که همان Dispatcher Process میباشد واگذار میکند. بعد از انجام هر کدام از اعمالی که ذکر کردم، Listener دیگر نقشی نخواهد داشت و آماده قبول کردن درخواست بعدی از کاربر میباشد.
وقتی که درخواست کاربر به اراکل میرسد اگر اراکل در حالت MTS باشد، وقتی که کاربر درخواستی را انجام میدهد، Dispatcher درخواست کاربر را در یک صف به نام Request Queue یا همان صف درخواست کاربران قرار میدهد. Request Queue در System Global Area قرار دارد که درخواستها را به ترتیب جواب میدهند و برای اینکار از الگوریتم معروف First-In-First-Out استفاده میکند.
هر Dispatcher در SGA صف مربوط به خود رادارد و به درخواستهای صف مربوط به خودش پاسخ میگوید وجواب پاسخها نیز در بازگشت به کاربر مربوطه بر میگردد
Stages in Processing Queries, Commits and Changes
Stages in Processing Queries, Commits and Changes
زمانی که شما درخواست یک سری دادههای مشخص از اراکل را توسط یک Sql Select انجام میدهید، دستورات به گونهای است که شما درخواست اطلاعات دلخواه خود را صاذر میکنید. خروجی این دستورات باید یرای اراکل قابل فهم باشد. این کار توسط Relational Database Management System که همان RDBMS میباشد انجام میشود. RDBMS دستورات SQL شما را به گونهای برای اراکل که قابل فهم باشد ترجمه میکند. مراحل پردازش به صورت زیر میباشد:
Search Shared Pool
RDBMS ابتدا سعی میکند که یک کپی از SQL ترجمه شده را در Library Cache پیدا کند.
Validate Statement
RDBMS، درستی دستورات SQL را که توسط کاربر اجرا شده است را چک میکند.
Validate Data Source
RDBMS مطمئن میشود که تمام سطرها و ستونهای که کاربر دز دستورش به آنها اشاره کرده است وجود داشته باشد.
Acquire Locks
RDBMS در این مرحله object های استفاده شده توسط دستور کاربر را تا پایان اجرای آن قفل میکند.
Check Privileges
RDBMS مجوز کاربر را برای اجرای دستورات SQL را کنترل میکند.
Pars Statement
RDBMS با تشکیل یک Parse Tree برای دستور SQL آن را در Library Cache قرار میدهد که شرکت اراکل بر این عقیده است که این روش بهینه برای اجرای دستورات اراکل میباشد. اینها مراحلی هستند که RDBMS آنها را انجام میدهد تا به دادههای مورد نظر کار بر برسد. اگر دستورات در Library Cache وجود داشت این مراحل قابل حذف میباشد.
Execute Statement
RDBMS تمام پردازشهای لازم را برای اجرای Select Statement را انجام میدهد، در این لحظه Server Process دادههای مورد نظر را از روی دیسک به Buffer Cache منتقل میکند.
Fetch Values From Cursor
زمانی که اجرای select statement پایان یافت دادهها در یک Cursor ذخیره شده و به Variable های مورد نظر الصاق میشوند و به User Process باز میگردند.