學習動態性能表
第12篇--V$DB_OBJECT_CACHE? 2007.6.4
?
本視圖提供對象在library cache(shared pool)中對象統計,提供比v$librarycache更多的細節,并且常用于找出shared pool中的活動對象。
?
v$db_object_cache中的常用列:
- OWNER:對象擁有者
- NAME:對象名稱
- TYPE:對象類型(如,sequence,procedure,function,package,package body,trigger)
- KEPT:告知是否對象常駐shared pool(yes/no),有賴于這個對象是否已經利用PL/SQL 過程DBMS_SHARED_POOL.KEEP“保持”(永久固定在內存中)
- SHARABLE_MEM:共享內存占用
- PINS:當前執行對象的session數
- LOCKS:當前鎖定對象的session數
?
瞬間狀態列:
下列列保持對象自初次加載起的統計信息:
- LOADS:對象被加載次數。
?
示例:
1.shared pool執行以及內存使用總計
下列查詢顯示出shared pool內存對不同類別的對象
同時也顯示是否有對象通過DBMS_SHARED_POOL.KEEP()過程常駐shared pool。
SELECT type, kept, COUNT(*), SUM(sharable_mem)
? FROM V$DB_OBJECT_CACHE
?GROUP BY type, kept;
?
2.通過載入次數找出對象
SELECT owner, name sharable_mem, kept, loads
? FROM V$DB_OBJECT_CACHE
?WHERE loads > 1 ORDER BY loads DESC;
?
3.找出使用的內存超過10M并且不在常駐內存的對象。
SELECT owner, name, sharable_mem, kept
? FROM V$DB_OBJECT_CACHE
?WHERE sharable_mem > 102400 AND kept = 'NO'
?ORDER BY sharable_mem DESC;
?