PGA ناحیه ای خاص از حافظه برای انجام عملیت های پردازشی Process می باشد که این فضا بین کاربران مشترک نیست. Not Shared

PGA انبوهی از حافظه مموری می باشد که شامل Session-Variable موردنیاز برای در سرورهای Dedicated و Shared می باشد.

Server Processes ها ساختارهای حافظه ای که PGA مورد نیاز دارد را فراهم می کند.

فضای PGA خیلی شبیه یک محیط کاری که دارای یک سری پرونده ای موقت ازمشتریان می باشد که بوسیله منشی پرونده که همان Server Processes می باشد روی پرونده های مشتریان Client Processes کار می کند. و از انجام کار منشی قسمتی از پرونده های موجود در کانتر را مرتب و پاک می کند و این فضا آماده می شود برای کار و درخواست مشتریان جدید این درخواست های مشتریان کاملا از هم مجزا بوده و بایستی پرونده ها مشتریان بصورت مرتب چیده شود و همه این پرونده های مشتریان بایستی در کنار هم مرتب و کانتری قرار گیرد.

شکل زیر نمایش Instance PGA (مجموعه ای از PGA برای هر Instnace می باشد) که در سرورهای اشتراکی Shared Server همچین پیکربندی وجود ندارد.

شما می توانید در parameter file از طریق تنظیمات مقادیر initialization parameters حداکثر فضای یک Instance PGA را مشخص کنید.

PGA بصورت انحصاری و مجزا اندازه آن را در صورت نیاز افزایش داد.

PGA

جزئیات یک PGA

PGA به دو ناحیه مختلف تقسیم می شود که هر ناحیه یک هدف متفاوتی دارند.

شکل زیر نمایش جزئیان یک PGA را برای سرورهای اختصاصی Dedicated Server می باشد.

DetailPGA

Private SQL Area

یک Private SQL Area ناحیه ای از فضا می باشد که اطلاعاتی در مورد دستورات SQL پارس شده که کاربر اجرا می کند و اطلاعاتی در مورد Session خاصی در پردازش های اوراکب می باشد.

زمانی که server process دستورات SQL و PL/SQL را اجرا می کند یک سری پروسس هایی هستند مقادیر Bind-Variable و اطلاعاتی در مورد وضغیا اجرا کوئری و وضعیت ناحیه اجرا کوئری را در ناحیه Private SQL Area ذخیره می کند.

یادتان باشد که سردرگم نشوید که ناحیه Private SQL Area که در PGA قرار دارد با ناحیه Shared SQL Area که در SGA قرار دارد کاملا متفاوت هستند.

ناحیه Private SQL Area می تواند یرای هر Session بصورت مجزا دستورات که توسط هر کاربر اجرا می شود را در خود ذخیره کند.

Cursor یک نام است و که وضیفه اش که ناحیه و اطلاعات و داده هایی در Private SQL Area قرار دارد را مدیریت کند.

Cursor

SQL Work Area

ناحیه ای Private از PGA می باشد برای عملیات هایی که به مقدار حافظه زیاد و فشرده نیاز است. مانند عملیات های Sorting , Hash Join , Hash Table و , Merge

اوراکل اندازه حافظه SQL Work Area را بصورت خودکار محاسبه و مشخص tune می کند که اندازه PGA بصورت خودکار مشخص باشد . اما می توان اندازه این حافظه را به صورت دستی مشخص و تنظیم کرد.

توضیحات بیشتر در مورد این مطلب : Memory Management