【轉】設定db_keep_cache_size快取,並把一個表快取進去

ewelamb發表於2013-06-14
alter system set db_keep_cache_size=80M --設定keep值大小
        alter table TBL_AIRCOMPANY storage(buffer_pool keep)--把表TBL_AIRCOMPANY設定成keep在pool池中
        ALTER TABLE TBL_AIRCOMPANY cache --讓TBL_AIRCOMPANY可以快取
        
        SELECT OBJECT_NAME, A.STATUS, COUNT(*)
 FROM V$BH A, USER_OBJECTS B
 WHERE A.OBJD = B.OBJECT_ID
 --AND OBJECT_NAME IN ('TBL_AIRCOMPANY')
 GROUP BY OBJECT_NAME, A.STATUS; --檢視是否在快取keep中
 
 


  --各個buffer的空間資訊 

  select p.name,sum(a.cnum_repl) "total buffers",sum(a.anum_repl) "free buffers" from x$kcbwds a, v$buffer_pool p
    where a.set_id>=p.LO_SETID and
           a.set_id<=p.HI_SETID
    group by p.name; 

--指令碼用來定位哪些object在buffer cache中存在,佔用的buffer cache的量是多少以及佔用的是什麼型別的buffer cache。

select decode(pd.bp_id,1,'KEEP',2,'RECYCLE',3,'DEFAULT',

         4,'2K SUBCACHE',5,'4K SUBCACHE',6,'8K SUBCACHE',

         7,'16K SUBCACHE',8,'32KSUBCACHE','UNKNOWN') subcache,

         bh.object_name,bh.blocks 

from x$kcbwds ds,x$kcbwbpd pd,(select set_ds,

         o.name object_name,count(*) BLOCKS

         from obj$ o, x$bh x where o.dataobj# = x.obj

         and x.state !=0 and o.owner# !=0

         group by set_ds,o.name) bh

where ds.set_id >= pd.bp_lo_sid

and ds.set_id <= pd.bp_hi_sid

and pd.bp_size != 0

and ds.addr=bh.set_ds
order by  decode(pd.bp_id,1,'KEEP',2,'RECYCLE',3,'DEFAULT',

         4,'2K SUBCACHE',5,'4K SUBCACHE',6,'8K SUBCACHE',

         7,'16K SUBCACHE',8,'32KSUBCACHE','UNKNOWN'),bh.blocks;

 

select 
(select value from V$SYSSTAT where name='physical write total bytes')/
(select value from V$SYSSTAT where name='physical read total bytes')*100||'%' 寫讀比例
from dual

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7191998/viewspace-763984/,如需轉載,請註明出處,否則將追究法律責任。

相關文章