oracle的parse是什么意思,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之間的成本差異。
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/92650/viewspace-775662/,如需轉載,請注明出處,否則將追究法律責任。
總結
以上是生活随笔為你收集整理的oracle的parse是什么意思,Oracle性能测量体系(Parse Time)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 在线表分析报告,Oracl
- 下一篇: c语言将程序写为动态库,VS下生成C程序