如何檢視oracle SGA各元件大小,以及調整db_cache,shared_pool,PGA大小
看了蓋老師的深入淺出DBA後,做的筆記。伴隨db_cache_size的增大,估計的物理讀(estd_physical_reads)在逐步減少,我們的選擇就於在db_cache_size的設定和physical_reads之間尋找一個邊際效率最高點,使用可以接受的記憶體設定,獲得儘量低的物理讀。---摘抄自蓋老師的大作。
--檢視各元件的大小
select x.ksppinm name, y.ksppstvl value, x.ksppdesc describ
from x$ksppi x, x$ksppcv y
where x.inst_id = userenv('Instance'
and y.inst_id = userenv('Instance')
and x.indx = y.indx
and x.ksppinm like'%pool_size%';
--按照建議調整db_cache大小,size_fator=1的為最合適的
select d.id,
d.NAME,
d.BLOCK_SIZE,
d.SIZE_FOR_ESTIMATE,
d.SIZE_FACTOR,
d.ESTD_PHYSICAL_READ_FACTOR,
d.ESTD_PHYSICAL_READS
from v$db_cache_advice d;
--按照建議調整shared_pool大小,size_fator=1的為最合適的
select shared_pool_size_for_estimate spsfe,shared_pool_size_factor spsf,
estd_lc_size,estd_lc_memory_objects elmo,estd_lc_time_saved elts,
estd_lc_time_saved_factor eltsf,estd_lc_memory_object_hits elmoh
from v$shared_pool_advice;
--按照建議調整PGA大小
select t.PGA_TARGET_FOR_ESTIMATE/1024/1024 pgaMB,
t.PGA_TARGET_FACTOR,t.ESTD_PGA_CACHE_HIT_PERCENTAGE,
t.ESTD_OVERALLOC_COUNT
from v$pga_target_advice t;
--調整PGA大小到合適
ALTERSYSTEMSET pga_aggregate_target = 1018167296SCOPE=BOTH