2015年11月25日 星期三

Oracle 10g 修改SGA,PGA大小

一、概念
共享記憶體(System Global Area:SGA)是用於存儲資料庫的內存區,該信息為資料庫processes所共享。
單個服務器processes或單個後台進程(Process Global Area:PGA)單個PROCESS(thread)私有。

SGA進程共享而,PGA 是只被一個進程使用的區域,PGA 在創建進程時分配,在終止進程時回收。
Oracle 10g提供了PGA內存的自動管理。參數pga_aggregate_target可以指定PGA內存的最大值。
當參數pga_aggregate_target大於0時,Oracle將自動管理pga內存,並且各進程的所佔PGA之和,不大於pga_aggregate_target所指定的值。

二、配置
oracle推薦OLTP(on-line Transaction Processing)系統oracle佔系統總內存的80%,然後再分配80%給SGA,20%給PGA。也就是
SGA=system_total_memory*80%*80%
PGA=system_total_memory*80%*20%

三、操作
用SYS用戶以SYSDBA身份登錄系統
alter system set sga_max_size=2000m scope=spfile;
alter system set sga_target=2000m scope=spfile;
alter system set pga_aggregate_target=500m scope=spfile;

然後重新啟動數據庫
最後查看一下是否生效
show parameter sga_max_size;
show parameter sga_target;
show parameter pga_aggregate_target;

沒有留言: