通過重啟資料庫,完成了一次優化
前段時間跟了一個很有意思的優化專案
解決嚴重的效能問題只需要幹一件事情:重啟資料庫,而且不會復發
Load Profile
系統負載極輕,但是CPU 100%,系統遭遇到了嚴重的latch & mutex 爭用
硬解析也極少,對於一個12C的系統,完全在承受的範圍內
cursor_sharing在系統出現效能問題後,已經在Oracle的建議下修改為force,但是基本沒有好轉
做了個ASH的切片,確認持有library cache: mutex X 的會話,在等待latch: shared pool,而持有SP latch的會話,只是在on cpu,說明SP latch是主因。
先開始懷疑是BUG,畢竟硬解析很少,後來沒找到相關的BUG
檢查了下SP latch的數目,竟然才1個,對於一個12C的系統,應該有3個SP latch才對,和客戶交流,原來他們系統本來只有4C,後來出現了嚴重的效能問題後,動態調了8C過來。
雖然CPU_COUNT從10g開始,可以隨動態調整而增加,但是SP latch的數目,是無法動態增加的,隨著本來系統就有的硬解析問題的積累,導致共享池嚴重碎片化,最終積累成了嚴重的效能問題。
重啟了資料庫後,困擾客戶幾個月的效能問題就這樣解決了
解決嚴重的效能問題只需要幹一件事情:重啟資料庫,而且不會復發
Load Profile
Per Second | Per Transaction | Per Exec | Per Call | |
---|---|---|---|---|
DB Time(s): | 31.1 | 4.9 | 0.24 | 0.09 |
DB CPU(s): | 3.3 | 0.5 | 0.03 | 0.01 |
Redo size: | 19,867.7 | 3,120.1 | |
|
Logical reads: | 8,721.6 | 1,369.7 | |
|
Block changes: | 108.2 | 17.0 | |
|
Physical reads: | 451.1 | 70.8 | |
|
Physical writes: | 5.8 | 0.9 | |
|
User calls: | 345.5 | 54.3 | |
|
Parses: | 79.3 | 12.5 | |
|
Hard parses: | 0.5 | 0.1 | |
|
W/A MB processed: | 77,431.2 | 12,159.9 | |
|
Logons: | 3.1 | 0.5 | |
|
Executes: | 128.1 | 20.1 | |
|
Rollbacks: | 2.7 | 0.4 | |
|
Transactions: | 6.4 | |
|
|
Instance Efficiency Percentages (Target 100%)
Buffer Nowait %: | 100.00 | Redo NoWait %: | 100.00 |
Buffer Hit %: | 99.87 | In-memory Sort %: | 100.00 |
Library Hit %: | 99.57 | Soft Parse %: | 99.34 |
Execute to Parse %: | 38.10 | Latch Hit %: | 99.71 |
Parse CPU to Parse Elapsd %: | 0.00 | % Non-Parse CPU: | 32.80 |
Shared Pool Statistics
Begin | End | |
---|---|---|
Memory Usage %: | 86.58 | 85.75 |
% SQL with executions>1: | 94.44 | 94.08 |
% Memory for SQL w/exec>1: | 91.11 | 90.69 |
Top 5 Timed Foreground Events
Event | Waits | Time(s) | Avg wait (ms) | % DB time | Wait Class |
---|---|---|---|---|---|
library cache: mutex X | 225,287,761 | 44,877 | 0 | 40.14 | Concurrency |
latch: shared pool | 9,940 | 37,235 | 3746 | 33.30 | Concurrency |
latch free | 3,031 | 11,828 | 3902 | 10.58 | Other |
DB CPU | |
11,772 | |
10.53 | |
enq: TX - row lock contention | 260 | 2,190 | 8425 | 1.96 | Application |
系統負載極輕,但是CPU 100%,系統遭遇到了嚴重的latch & mutex 爭用
硬解析也極少,對於一個12C的系統,完全在承受的範圍內
cursor_sharing在系統出現效能問題後,已經在Oracle的建議下修改為force,但是基本沒有好轉
做了個ASH的切片,確認持有library cache: mutex X 的會話,在等待latch: shared pool,而持有SP latch的會話,只是在on cpu,說明SP latch是主因。
先開始懷疑是BUG,畢竟硬解析很少,後來沒找到相關的BUG
檢查了下SP latch的數目,竟然才1個,對於一個12C的系統,應該有3個SP latch才對,和客戶交流,原來他們系統本來只有4C,後來出現了嚴重的效能問題後,動態調了8C過來。
雖然CPU_COUNT從10g開始,可以隨動態調整而增加,但是SP latch的數目,是無法動態增加的,隨著本來系統就有的硬解析問題的積累,導致共享池嚴重碎片化,最終積累成了嚴重的效能問題。
重啟了資料庫後,困擾客戶幾個月的效能問題就這樣解決了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-757919/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通過awr 查詢資料庫最近有沒有重啟!資料庫
- 一次資料庫的優化經歷資料庫優化
- 資料庫優化 - SQL優化資料庫優化SQL
- RAC資料庫重啟案例資料庫
- 資料庫優化資料庫優化
- 記一次開啟資料庫慢原因分析過程資料庫
- 記一次生產資料庫“意外”重啟的經歷資料庫
- 3.1.2.3 通過 SRVCTL 使用非預設初始化引數啟動資料庫資料庫
- 記一次 Golang 資料庫查詢元件的優化。Golang資料庫元件優化
- 記一次資料庫的分析和優化建議資料庫優化
- 友盟:如何通過資料優化產品設計?優化
- 通過資料庫檔案還原資料庫資料庫
- NOLOG方式重啟資料庫資料庫
- MySQL資料庫優化MySql資料庫優化
- 資料庫優化SQL資料庫優化SQL
- Oracle資料庫優化Oracle資料庫優化
- 資料庫效能優化資料庫優化
- 資料庫優化流程資料庫優化
- 優化資料~已經整理成了pdf檔案,pub上的好的優化優化
- 記一次資料庫查詢超時優化問題資料庫優化
- EntityFramework優化:第一次啟動優化Framework優化
- oracle資料庫監控優化與線上重組(轉貼)Oracle資料庫優化
- 通過SQL*Plus遠端啟動Oracle資料庫例項SQLOracle資料庫
- 通過ROWID刪除重複資料
- 資料庫啟動過程資料庫
- 2.3 通過DBCA建立資料庫資料庫
- 通過duplicat恢復資料庫資料庫
- 資料庫SQL優化大總結之 百萬級資料庫優化方案資料庫SQL優化
- 資料庫SQL優化大總結之百萬級資料庫優化方案資料庫SQL優化
- 記一次資料庫重啟後歸檔急劇增加的問題資料庫
- 資料庫優化之臨時表優化資料庫優化
- 【效能優化】ORACLE資料庫效能優化概述優化Oracle資料庫
- 資料庫的一次資料恢復過程資料庫資料恢復
- MYSQL資料庫------SQL優化MySql資料庫優化
- 資料庫效能優化2資料庫優化
- 百萬級資料庫優化資料庫優化
- 資料庫查詢優化資料庫優化
- 如何優化資料庫物件優化資料庫物件