在oracle中,可以利用「alter system set pga_aggregate_target=數值...」指令修改pga的大小;pga是「Program Global Area」的縮寫,是程式快取區,是一塊包含服務流程數據以及控制資訊的記憶體區域。
本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。
修改pga大小的語法為:
alter system set pga_aggregate_target=数值...
範例如下
在ORACLE中, PGA(Program Global Area,也稱為程式快取區) 是一塊包含服務進程資料以及控制資訊的記憶體區域。具體特點如下:
PGA 由固定 PGA 和可變 PGA (也稱為PGA Heap或PGA堆)。固定 PGA容量大小是固定的,包含了大量原子變數、小的資料結構和指向可變 PGA 的指標。
PGA是Oracle 在一個服務程序啟動時創建的,是非共享的。
一個 Oracle 程序擁有一個 PGA 。一個 PGA 也只能被擁有它的那個服務程序所訪問,只有這個進程中的 Oracle 程式碼才能讀寫它。
PGA 中包含了關於進程使用到的作業系統資源的信息,以及一些關於進程狀態的信息。而關於進程使用的 Oracle共享資源的資訊則是在 SGA ( 系統全域區 ) 中。這樣做可以使在進程以外中止時,能夠及時釋放和清除這些資源。
PGA與 SGA 類似,都是 Oracle 資料庫系統為會話在伺服器記憶體中分配的區域。
兩者的作用和共享程度也不相同。 SGA 對系統內的所有程序都是共享的。當多個使用者同時連接到一個例程時,所有的使用者程序、服務程序都可以共用使用這個 SGA 區。 SGA 的主要用途就是為不同使用者之間的進程與服務進程提供交流的平台。
擴充知識
PGA與SGA的差異
PGA(程式快取區)與SGA (系統全域區)類似,都是Oracle資料庫系統為會話在伺服器記憶體中分配的區域。不過兩者的作用不同,共享程度也不同。
SGA 系統全域區,顧名思義,是對系統內的所有行程都是共享的。當多個使用者同時連接到一個例程時,所有的使用者程序、服務程序都可以共用使用這個SGA區。為此這個SGA的主要用途就是為不同使用者之間的進程與服務進程提供一個交流的平台。除了這個作用,另外有一個重要的作用就是各種資料庫的操作主要就是在這個SGA區內完成。
而PGA程式緩衝區,則主要是為了某個使用者程式所服務的。這個記憶體區不是共享的,只有這個使用者的服務流程本身才能夠存取它自己的PGA區。做個形象的比喻,SGA就好像是作業系統上的一個共享資料夾,不同使用者可以以此為平台進行資料方面的交流。而PGA就好像是作業系統上的一個私有資料夾,只有這個資料夾的擁有者才能夠進行訪問,其他使用者都不能夠存取。雖然程式快取區不會對其他使用者的進程開放,但這個記憶體區仍然肩負著一些重要的使命,如資料排序、權限控制等等都離不開這個記憶體區。
推薦教學:《Oracle影片教學》
以上是oracle怎麼修改pga的詳細內容。更多資訊請關注PHP中文網其他相關文章!