Oracle效能測量體系(Parse Time)
時間響應指標:
RT:= CLient Time + Network TIme + DB Time
DB Time:= Parse TIme + Execute Time + Commit TIme
Parse Time:=Parse CPU Time + Parse Wait Time
Parse Wait Time:= Parse Time - Parse CPU Time
Parse Time:= Hard Parse Time + Soft Parse Time
Hard Parse Time:= Hard Parse CPU + Hard Parse Wait Time
吞吐量指標:
Parse Count
Hard Parse Count
眾所周知:Hard Parse的成本遠遠高於soft parse,而不同的soft parse其成本差異也極大。採用Parse Count作為Parse Time的吞吐量指標不是很準確,我們認為採用以下指標作為Parse 階段的吞吐量指標會更加真實。
parse過程基本上是不斷訪問shared pool的過程,由於我們無法從total LIO中分解出parse過程的LIO,我們採用訪問記憶體必須的latch獲得來進行parse吞吐量計數:
library cache latch gets
shared pool latch gets
row cache objects latch gets
採用mutex的度量會遇到問題,mutex僅僅記錄具有sleep的mutex,在一個高吞吐量系統應該不存在著no sleep的mutex,這裡暫且採用mutex sleep的進行合計。問題是awr自動收集缺乏mutex資訊,使我們需要自己來收集mutex相關資訊。
從簡單測試發現,v$mutex_sleep_history無法代表lmutex的get數量,所以採用這個來衡量吞吐量需要另外去獲得。
我們來看一下相關的比較:
1431595225 parse time elapsed 79926695
372226525 hard parse elapsed time 77738549
3 549 parse count (total) 64 46471
4 550 parse count (hard) 64 2452
1 row cache objects 1253506
2 shared pool 333468
由於library cache latch為parse階段最為重要的latch,在mutex模式似乎沒有辦法獲得。如果無法獲得mutex的get通道,也許採用latch或者mutex gets來標記parse級別吞吐量存在問題。
為什麼選擇latch gets來替代parse count:
latch gets可以精細的描述各種不同的parse,使不同的parse可以被同一個標準所衡量。
比如我們來看:
parse count無法標記出:soft parse,soft soft parse,no parse以及High Version parse之間的區別,大家知道即使是soft parse,soft soft parse等等會有各自很大的不同,但是latch gets在某種程度上可以準確的衡量出不同parse之間的成本差異。
RT:= CLient Time + Network TIme + DB Time
DB Time:= Parse TIme + Execute Time + Commit TIme
Parse Time:=Parse CPU Time + Parse Wait Time
Parse Wait Time:= Parse Time - Parse CPU Time
Parse Time:= Hard Parse Time + Soft Parse Time
Hard Parse Time:= Hard Parse CPU + Hard Parse Wait Time
吞吐量指標:
Parse Count
Hard Parse Count
眾所周知:Hard Parse的成本遠遠高於soft parse,而不同的soft parse其成本差異也極大。採用Parse Count作為Parse Time的吞吐量指標不是很準確,我們認為採用以下指標作為Parse 階段的吞吐量指標會更加真實。
parse過程基本上是不斷訪問shared pool的過程,由於我們無法從total LIO中分解出parse過程的LIO,我們採用訪問記憶體必須的latch獲得來進行parse吞吐量計數:
library cache latch gets
shared pool latch gets
row cache objects latch gets
採用mutex的度量會遇到問題,mutex僅僅記錄具有sleep的mutex,在一個高吞吐量系統應該不存在著no sleep的mutex,這裡暫且採用mutex sleep的進行合計。問題是awr自動收集缺乏mutex資訊,使我們需要自己來收集mutex相關資訊。
從簡單測試發現,v$mutex_sleep_history無法代表lmutex的get數量,所以採用這個來衡量吞吐量需要另外去獲得。
我們來看一下相關的比較:
1431595225 parse time elapsed 79926695
372226525 hard parse elapsed time 77738549
3 549 parse count (total) 64 46471
4 550 parse count (hard) 64 2452
1 row cache objects 1253506
2 shared pool 333468
由於library cache latch為parse階段最為重要的latch,在mutex模式似乎沒有辦法獲得。如果無法獲得mutex的get通道,也許採用latch或者mutex gets來標記parse級別吞吐量存在問題。
為什麼選擇latch gets來替代parse count:
latch gets可以精細的描述各種不同的parse,使不同的parse可以被同一個標準所衡量。
比如我們來看:
parse count無法標記出:soft parse,soft soft parse,no parse以及High Version parse之間的區別,大家知道即使是soft parse,soft soft parse等等會有各自很大的不同,但是latch gets在某種程度上可以準確的衡量出不同parse之間的成本差異。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/92650/viewspace-775662/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle效能測量體系(Parse Time)續Oracle
- Oracle效能測量體系(Execute Time)Oracle
- Oracle效能測量體系(commit Time)OracleMIT
- Oracle效能測量體系Oracle
- python parse timePython
- 效能測試知識體系
- 效能測試基礎知識體系
- 5 測量資料庫效能資料庫
- JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from StringJSONErrorJavaLDA
- 前端效能監測,Runtime Performance Debug 技巧前端ORM
- 軟體效能測試
- 系統吞吐量(TPS)、使用者併發量、效能測試概念和公式公式
- Oracle RAC序列效能測試Oracle
- Performance Index 64 Pro for Mac(系統效能監測軟體)ORMIndexMac
- 效能測試——效能測試-常見效能指標-總體概況指標
- 軟體效能測試有哪些效能指標?可做效能測試的軟體檢測機構安利指標
- fast parse,soft parse,hard parse的區別!AST
- 效能測試基礎(四)吞吐量
- 網路效能的測量工具netperf
- Oracle OWI方法論的可檢測體系Oracle
- 測量、基線和效能優化之三:基於測量、基線和變化的效能優化優化
- oracle breakable parse lock 易碎解析鎖Oracle
- 系統吞吐量、TPS(QPS)、使用者併發量、效能測試概念和公式公式
- 測量、基線和效能優化之三:基於測量、基線和變化的效能優化v優化
- 優秀的網路效能測量工具----Iperf
- 測量、基線和效能優化之二:基線和效能優化
- js基礎–Date.parse()與Date.getTime()方法詳解JS
- [20230104]Oracle too many parse errors PARSE ERROR.txtOracleError
- MSA(測量系統分析)的重要性體現在哪裡?
- 質量體系建設之路---從介面測試開始基建
- 軟體測試學習教程—軟體測試質量
- 睡眠質量預測系統
- Geekbench 5 測系統效能工具
- 資訊系統效能評測
- 使用profiler測試Oracle PL/SQL效能OracleSQL
- Pebble Time 2評測:增加可監測心率使用體驗更好
- 軟體效能測試和可靠性測試
- 軟體效能測試有哪些測試過程?