程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle的SGA

Oracle的SGA

編輯:Oracle教程

Oracle的SGA(System Global Areas):數據庫的系統全局區,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。

SELECT NAME, VALUE
  FROM v$sysstat
 WHERE NAME IN ('db block gets', 'consistent gets', 'physical reads');

--查看數據庫數據緩沖區的使用情況。查詢出來的結果可以計算出來數據緩沖區的使用命中率=1 - ( physical reads/ (db block gets + consistent gets) )。命中率應該在90%以上,否則需要增加數據緩沖區的大小。

日志緩沖區

日志緩沖區:存放數據庫運行生成的日志。

 

SELECT NAME, VALUE
  FROM v$sysstat
 WHERE NAME IN ('redo entries', 'redo log space requests');
--查看日志緩沖區的使用情況。查詢出的結果可以計算出日志緩沖區的申請失敗率:申請失敗率=requests/entries,申請失敗率應該接近於0,否則說明日志緩沖區開設太小,需要增加ORACLE數據庫的日志緩沖區。

 


 



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved