標籤:
oracle的SGA:資料庫的系統全域區,SGA主要由三部分構成:共用池、資料緩衝區、日誌緩衝區。
- 共用池又由兩部分構成:共用SQL區和資料字典緩衝區。
共用SQL區專門存放使用者SQL命令,oracle使用最近最少使用等優先順序演算法來更新覆蓋;資料字典緩衝區(library cache)存放資料庫啟動並執行動態資訊。資料庫運行一段時間後,DBA需要查看這些記憶體地區的命中率以從資料庫角度對資料庫效能調優。通過執行下述語句查看:
select(sum(pins - reloads))/sum(pins) "Lib Cache" from v$librarycache;
--查看共用SQL區的重用率,最好在90%以上,否則需要增加共用池的大小。
select(sum(gets - getmisses -usage- fixED))/sum(gets) "Row Cache" from v$rowcache;
--查看資料字典緩衝區的命中率,最好在90%以上,否則需要增加共用池的大小。
- 資料緩衝區:存放sql運行結果抓取到的data block;
selectname,value
from v$sysstat
wherenamein(‘db block gets‘,‘consistent gets‘,‘physical reads‘);
--查看資料庫資料緩衝區的使用方式。查詢出來的結果可以計算出來資料緩衝區的使用命中率=1 - ( physical reads / (db block gets + consistent gets) )。命中率應該在90%以上,否則需要增加資料緩衝區的大小。
- 日誌緩衝區:存放資料庫運行產生的日誌。
selectname,value
from v$sysstat
wherenamein(‘redo entries‘,‘redo log space requests‘);
--查看日誌緩衝區的使用方式。查詢出的結果可以計算出日誌緩衝區的申請失敗率:申請失敗率=requests/entries,申請失敗率應該接近於0,否則說明日誌緩衝區開設太小,需要增加ORACLE資料庫的日誌緩衝區。
Oracle SGA最佳化