對於數據庫使用環境數據庫在使用中出現的問題,可能由表空間、文件系統、數據文件、進程等組件當中的任意一個造成,
甚至有可能是由於某一個SQL語句的性能太差造成系統性能問題。因此,當數據庫出現問題,徹查問題的根本原因成爲重複、繁雜的勞動,
但是在排查問題前,身爲性能測試技術人員先要了解用什麼工具,明確監控哪些數據庫性能指標,有的放矢,纔有收穫,如下oracle監控性能指標以及使用監控分析方法:
指標名稱 | 故障問題描述與診斷分析 | |
Oracle 數據訪問數據方式 | ||
全表掃描/秒 (Full Scans/sec) | 指標描述 | 指每秒全表掃描的數量。全表掃描可以是基本表掃描或全索引掃描。由於全表掃描需要耗費大量時間,因此全表掃描的頻率過高的話CPU使用率會過高,會影響性能。 |
指標診斷 | 1、 通過使用Spotlight進行SQL問題獲取。 2、 通過數據庫日誌分析獲取對象有問題的SQL | |
指標分析 | 1、通過使用Spotlight或者事件探查器分析看是否需要通過全表掃描方式,來優化SQL查詢性能。 2、對於大數量有歷史數據等情況進程查詢表數據,可以通過分析是否進行分區表來提高查詢效率。 | |
其他 | 指標描述 | SQL語法寫法問題,導致過度消耗資源CPU/內存 |
指標診斷 | 1、 通過使用Spotlight進行SQL問題獲取。 2、 通過數據庫日誌分析獲取對象有問題的SQL | |
指標分析 | 嵌套太多子查詢或者排序語法等問題,通過修改SQL實現方式 | |
ORACLE 數據庫實例參數配置分析 | ||
緩衝區 等待 Buffer wait | 指標描述 | 指在緩衝區中獲取Buffer 的等待機率 |
指標診斷 | 通過使用Spotlight或者快照方式獲取對應的指標數值 | |
指標分析 | 通過使用Spotlight該性能指標應該接近100%; | |
緩衝區命中率 Buffer Hit % | 指標描述 | 指數據塊在數據緩衝區中的命中率 |
指標診斷 | 通過使用Spotlight或者快照方式獲取對應的指標數值 | |
指標分析 | 該值一般應該90%以上; | |
共享區命中率 SharedPool % | 指標描述 | 共享池的使用情況 |
指標診斷 | 通過使用Spotlight或者快照方式獲取對應的指標數值 | |
指標分析 | 通過使用Spotlight分析,該值一般應該90%以上; | |
內存排序使用率 | 指標描述 | 指排序操作在內存中進行的比率。當查詢需要排序時,現在內存排序,內存不足就會利用臨時表空間進行磁盤排序,造成IO問題,影響效率。 |
指標診斷 | 通過使用Spotlight或者快照方式獲取對應的指標數值 | |
指標分析 | 該值通常接近100%性能比較好; | |
日誌文件同步 Log file sync | 指標描述 | 這個等待事件是指當一個會話完成一個事物時,必須等到LGWR進程將會話的redo 信息從日誌緩衝區寫到日誌文件中,才能繼續執行下去。 |
指標診斷 | 通過使用Spotlight或者快照方式獲取對應的指標數值 | |
指標分析 | 這個等待事件的時間過長,可能因爲提交或者更新數據 太頻繁或者一次寫日誌的時間太長; | |
Redo 緩衝區等待率 Redo wait | 指標描述 | 指在Redo緩衝區中獲取Buffer 的等待機率 |
指標診斷 | 通過使用Spotlight或者快照方式獲取對應的指標數值 | |
指標分析 | 該性能指標應該接近100%; | |
oracle 中鎖(Locks)性能計數器 | ||
隊列等待 (enqueue(cs)) | 指標描述 | 該鎖定機制保護共享資源,如記錄中的數據,以避免兩個人在同一時間更新同一數據。enqueue包括一個排隊機制,即FIFO(先進先出)排隊機制。 |
指標診斷 | 通過使用Spotlight、快照方式、LR監控獲取對應的指標數值 | |
指標分析 | 如果enqueue等待事件比較顯著,則需要根據enqueue等待類型,採取相應的優化方法。 防止多個事務併發使用資源,儘可能少使用鎖來提高性能開銷。 |