程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

OraclePGA

編輯:Oracle教程

PGA (ProgramGlobal Area )程序全局區

PGA是用戶進程連接到數據庫並創建一個對應的會話時,由ORACLE為服務器進程分配的專門用於當前用戶會話的內存區,每個Oracle服務器進程都包含有屬於自己的PGA,它只存儲這個服務進程的相關信息。PGA是私有的而非共享的,當它對應的用戶進程死掉後可將服務器進程及其資源清除和釋放。PGA的構成:

l 排序區

用於存放排序操作產生的臨時數據,排序區是影響PGA區大小的主要因素。排序區的大小由初始化參數SORT_AREA_SIZE決定。而SORT_AREA_RETAINED_SIZE參數是決定排序區操作結束後排序區保留的內存大小。從排序區釋放的內存仍然屬於服務器進程,並不返回給操作系統。

ORACLE利用內存比磁盤快的事實,將准備排序的數據先臨時存儲到排序區中,並在排序區中執行排序操作,然後將排序結果返回給用戶。

排序原理:如果要排序的數據在排序區中放不下,則ORACLE就將數據分割成較小的塊放在排序區中,然後對每一小塊進行排序。排序產生的臨時數據就先放到臨時表空間的臨時段中。當每一小塊都排序完成之後,再將這些排序完成的小塊合並在一起,產生最終結果。

l 會話區

存儲會話所具有的權限、角色、性能統計信息。

l 游標狀態區

運行SQL語句或使用游標的語句時,ORACLE會在共享池中為該語句分配上下文區,游標實際是指向該上下文區的指針。在PGA區中的游標狀態區存儲的是會話中當前使用的各個游標所處的狀態。

l 堆棧區

存儲的是會話中的綁定變量、會話變量、SQL語句運行的內存結構等信息。

SGA與PGA對比表

SGA

PGA

分配時間

實例啟動時

創建服務器進程時

釋放時間

實例關閉時

服務器進程結束時

共享范圍

被一個實例下的所有進程共享

單個進程專用,不能共享。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved