v$db_object_cache

安佰勝發表於2011-03-22

v$db_object_cache
 
-----------------
記錄在share_pool中library cache中的物件資訊
 
SQL> desc v$db_object_cache
 Name            Type
 --------------- --------------------
 OWNER           VARCHAR2(64)        --物件所有者
 NAME            VARCHAR2(1000)       --物件名
 DB_LINK         VARCHAR2(64)
 NAMESPACE       VARCHAR2(28)               --應該也是物件型別,沒有確認
 TYPE            VARCHAR2(28)               --物件型別(sequence,procedure,function,package,package body,trigger)
 SHARABLE_MEM    NUMBER                     --在共享池中佔用的空間
 LOADS           NUMBER           --被載入次數
 EXECUTIONS      NUMBER            --執行次數
 LOCKS           NUMBER           --當前所定物件的session數
 PINS            NUMBER           --當前執行物件的session數
 KEPT            VARCHAR2(3)                --物件是否常駐記憶體中,即是否使用dbms_shared_pool.keep固定
 CHILD_LATCH     NUMBER                     --子latch
 
通過查詢v$db_object_cache可以確認出library cache中頻繁載入的物件,或者佔用記憶體比較多的物件
並根據實際情況進行優化
如果頻繁載入的話可以使用dbms_share_pool包中的keep功能將物件keep到記憶體中
同時可以根據統計觀察library_cache的使用
 
--檢視是否用物件被keep到share_pool中
select type,kept,count(*) from v$db_object_cache group by type,kept order by count(*),kept;
 
--檢視目前library_cache中所有物件總大小
select sum(SHARABLE_MEM)/1024/1024 m from v$db_object_cache;
 
--檢視library_cache中佔用空間比較大,並且沒有被keep到記憶體中的物件
select owner,name,sharable_mem,kept from v$db_object_cache where sharable_mem>102400 and kept ='NO' order by sharable_mem;
 
--檢視library_cache中頻繁重新載入的物件
select owner,name,sharable_mem,kept,loads from v$db_object_cache order by loads;

 

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

相關文章