學習動態性能表第12篇--V$DB_OBJECT_CACHE
本視圖提供對象在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;
找出使用的內存超過10M并且不在常駐內存的對象。
SELECT owner, name, sharable_mem, kept
FROM V$DB_OBJECT_CACHE
WHERE sharable_mem > 102400 AND kept = 'NO'
ORDER BY sharable_mem DESC;