天天看點

ORACLE資料庫的優化

cpu參數的調整

  使用操作相同指令可以看到cpu的使用情況,以般unix作業系統的伺服器,可以使用sar–u指令檢視cpu的使用率,nt作業系統的伺服器,可以使用nt的性能管理器來檢視cpu的使用率。

  資料庫管理者還可以通過檢視v$sesstat資料字典來獲得目前連接配接oracle資料庫各個會話占用的cpu時間,進而得知什麼會話耗用伺服器cpu比較多。(select*fromv$sysstat orderbyvaluedesc)

  1、資料庫管理者可以執行下述語句來檢視sql語句的解析情況:

  select * from v$sysstat

  where name in

  ('parse time cpu', 'parse time elapsed', 'parse count (hard)');

  這裡parse time cpu是系統服務時間,parse timeelapsed是響應時間,使用者等待時間

  waite time = parse time elapsed – parse time cpu

  由此可以得到使用者sql語句平均解析等待時間=waite time / parse count,這個平均等待時間應該接近于0,如果平均解析等待時間過長,資料庫管理者可以通過下述語句

  selectsql_text, parse_calls, executions from v$sqlarea

  order by parse_calls;

  來發現是什麼sql語句解析效率比較低。程式員可以優化這些語句,或者增加oracle參數session_cached_cursors的值。

  2、資料庫管理者還可以通過下述語句:

  select buffer_gets, executions, sql_text fromv$sqlarea;

  檢視低效率的sql語句,優化這些語句也有助于提高cpu的使用率。

  3、資料庫管理者可以通過v$system_event(select*fromv$system_event where event like'_atch%';)資料字典中的”latchfree“統計項檢視oracle資料庫的沖突情況,如果沒有沖突的話,latch free查詢出來沒有結果。如果沖突太大的話,資料庫管理者可以降低spin_count參數值,來消除高的cpu使用率。

記憶體參數的調整

  記憶體參數的調整主要是指oracle資料庫的系統全局區(sga)的調整。sga主要由三部分構成:共享池、資料緩沖區、日志緩沖區。

  1、   共享池由兩部分構成:共享sql區和資料字典緩沖區,共享sql區是存放使用者sql指令的區域,資料字典緩沖區存放資料庫運作的動态資訊。資料庫管理者通過執行下述語句:

  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%以上,否則需要增加共享池的大小。

  2、   資料緩沖區.資料庫管理者可以通過下述語句:

  select name, value  from v$sysstat  where name in ('db block gets', 'consistentgets','physical reads');

  來檢視資料庫資料緩沖區的使用情況。查詢出來的結果可以計算出來資料緩沖區的使用命中率=1 - ( physical reads / (db block gets + consistent gets))。

  這個命中率應該在90%以上,否則需要增加資料緩沖區的大小。

  3、   日志緩沖區.資料庫管理者可以通過執行下述語句:

  select name,value from v$sysstat where name in('redo entries','redo log space requests');檢視日志緩沖區的使用情況。查詢出的結果可以計算出日志緩沖區的申請失敗率:

  申請失敗率=requests/entries,申請失敗率應該接近于0,否則說明日志緩沖區開設太小,需要增加oracle資料庫的日志緩沖區。

最新内容請見作者的github頁:http://qaseven.github.io/