1. 程式人生 > >oracle調整sga、pga大小

oracle調整sga、pga大小

修改sga大小

1-1檢視當前sga大小

SQL> show parameter sga

1-2修改sga_max_size為24G

SQL> alter system set sga_max_size=24G scope=spfile;

1-3修改sga_target為24G

SQL> alter system set sga_target=24G scope=spfile;

1-4重啟生效

SQL> shutdown immediate

SQL> startup

SQL> show parameter sga

修改pga大小

2-1檢視當前pga大小

SQL> show parameter pga

2-2修改workarea_size_policy為AUTO

SQL> alter system set workarea_size_policy=auto scope=both;

SQL> show parameter workarea

2-3修改pga_aggregate_target為8G

SQL> alter system set pga_aggregate_target=8G scope=both;

pga為動態引數,不需要重啟,修改完直接生效

SQL> show parameter pga

記憶體監控

3-1檢視實際pga分配情況

SQL> SELECT * FROM V$PGASTAT;

aggregate PGA auto target

--當前可用於自動分配了的PGA大小,應該比PGA_AGGREGATE_TARGET 小

over allocation count

--例項啟動後,發生的分配次數,如果這個值大於0,就要考慮增加pga的值

3-2檢視sga和pga的使用情況

SQL> select name,total,round(total-free,2) used, round(free,2) free,round((total-free)/total*100,2) pctused from

(select 'SGA' name,(select sum(value/1024/1024) from v$sga) total,

(select sum(bytes/1024/1024) from v$sgastat where name='free memory')free from dual)

union

select name,total,round(used,2)used,round(total-used,2)free,round(used/total*100,2)pctused from (

select 'PGA' name,(select value/1024/1024 total from v$pgastat where name='aggregate PGA target parameter')total,

(select value/1024/1024 used from v$pgastat where name='total PGA allocated')used from dual);