學習動態性能表數據庫
第16篇--V$ROWCACHE 2007.6.12緩存
本視圖顯示數據字典緩存(也叫rowcache)的各項統計。每一條記錄包含不一樣類型的數據字典緩存數據統計,注意數據字典緩存有層次差異,所以一樣的緩存名稱可能不止一次出現。性能
V$ROWCACHE經常使用列學習
使用V$ROWCACHE數據大數據
1>.確認數據字典緩存是否擁有適當的大小。若是shared pool太小,那數據字典緩存就不足以擁有合適的大小以緩存請求信息。spa
2>.確認應用是否有效訪問緩存。若是應用設計未能有效使用數據字典緩存(好比,大數據字典緩存並不有助於解決性能問題)。例如,DC_USERS緩存在過去某段時期內出現大量GETS,看起來像是數據庫中建立了大量的不一樣用戶,而且應用記錄下用戶頻繁登錄和註銷。經過檢查logon比率以及系統用戶數能夠驗證上述數據。同時解析比率也會很高,若是這是一個大型的OLTP系統的中間層,它可能在中間層更有效的管理個別賬戶,容許中間層以單用戶登錄成爲應用全部者。經過保持活動鏈接來減小logon/logoff比率也一樣有效。設計
3>.確認是否發生動態空間分配。DC_SEGMENTS, DC_USED_EXTENTS, 以及DC_FREE_EXTENTS大量的相似大小修改將指出存在大量動態空間分配。可行的解決方案包括指定下一個區大小或者使用本地管理表空間。若是發生空間分配的是臨時的表空間,則能夠爲其指定真正的臨時表空間(If the space allocation is occurring on the temp tablespace, then use a true temporary tablespace for the temp. )。get
4>.dc_sequences值的變化指出是否大量sequence號正在產生。requests
5>.蒐集硬解析的證據。硬解析常表現爲大量向DC_COLUMNS, DC_VIEWS 以及 DC_OBJECTS caches的gets。it
示例:
1.分組統計數據字典統計項
SELECT parameter,sum("COUNT"),sum(usage),sum(gets),sum(getmisses),
sum(scans),sum(scanmisses),sum(modifications),
sum(dlm_requests),sum(dlm_conflicts),sum(dlm_releases)
FROM V$ROWCACHE
GROUP BY parameter;
2.檢查數據字典的命中率
select 1 - sum(getmisses) / sum(gets) "data dictionary hitratio" from v$rowcache;