statspack中Library Hit是如何計算的?
透過測試發現Library Hit 是pin的命中率!
首先透過statspack產生的report中
Library Hit %: 79.58
下面看看Library Hit 是如何計算出來的,當然大家也可以直接去看spreport script!
SQL> select snap_id,gets,gethits,pins,pinhits from stats$librarycache where snap
_id in (1,2);
SNAP_ID GETS GETHITS PINS PINHITS
---------- ---------- ---------- ---------- ----------
1 1483 1385 1920 1780
1 271 253 710 688
1 167 4 187 24
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 7767 2061 102328 97310
1 10218 5604 23100 15402
1 81 63 902 878
2 1483 1385 1921 1781
2 271 253 710 688
2 167 4 187 24
2 0 0 0 0
2 0 0 0 0
2 0 0 0 0
2 0 0 0 0
2 0 0 0 0
2 7775 2061 105886 100586
2 10707 6002 24600 16151
2 81 63 902 878
已選擇22行。
SQL> select sum(gets),sum(gethits),sum(pins),sum(pinhits) from stats$librarycach
e where snap_id=2;
SUM(GETS) SUM(GETHITS) SUM(PINS) SUM(PINHITS)
---------- ------------ ---------- ------------
20484 9768 134206 120108
SQL> select sum(gets),sum(gethits),sum(pins),sum(pinhits) from stats$librarycach
e where snap_id=1;
SUM(GETS) SUM(GETHITS) SUM(PINS) SUM(PINHITS)
---------- ------------ ---------- ------------
--首先看看是不是在計算library hit時考慮了library lock,透過下面計算發現沒有包括
19987 9370 129147 116082
SQL> select 100*((9768 -9370 )+(120108 - 116082))/((20484 - 19987)+(134206 -1291
47 )) from dual;
100*((9768-9370)+(120108-116082))/((20484-19987)+(134206-129147))
-----------------------------------------------------------------
79.6256299
--完全利用pin來驗證一下發現沒有問題!
SQL> select 100*(120108 - 116082)/(134206 -129147 ) from dual;
100*(120108-116082)/(134206-129147)
-----------------------------------
79.5809449
--======================================
statspack package中計算library hit的函式如下:
function LIBRARYCACHE_HITRATIO RETURN number is
/* Returns Library cache hit ratio for the begin and end (bid, eid)
snapshot id's specified
*/
cursor LH (i_snap_id number) is
select sum(pins), sum(pinhits)
from stats$librarycache
where snap_id = i_snap_id
and dbid = db_ident
and instance_number = inst_num;
bpsum number;
bhsum number;
epsum number;
ehsum number;
begin
if not LH%ISOPEN then open LH (bid); end if;
fetch LH into bpsum, bhsum;
if LH%NOTFOUND then
raise_application_error
(-20100,'Missing start value for stats$librarycache');
end if; close LH;
if not LH%ISOPEN then open LH (eid); end if;
fetch LH into epsum, ehsum;
if LH%NOTFOUND then
raise_application_error
(-20100,'Missing end value for stats$librarycache');
end if; close LH;
return (ehsum - bhsum) / (epsum - bpsum);
end LIBRARYCACHE_HITRATIO;
--=================
我們發現上面cursor LH (i_snap_id number) is
select sum(pins), sum(pinhits)
from stats$librarycache
的確是只計算了pin
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-61744/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- statspack中相關效能指標的計算方法指標
- Library Hit %: -986.64 負數的問題
- [Oracle Script] Library Cche Hit RatioOracle
- dba_tables中的avg_row_len是如何被計算的?
- Go 語言是如何計算 len() 的?Go
- 計算機實際上是如何工作的計算機
- 我是如何學習計算機程式設計的計算機程式設計
- java Count如何計算流中的元素Java
- MySQL中Innodb如何計算索引的統計資訊?MySql索引
- statspack中報告中的等待事件事件
- 2021-2-17:Java HashMap 的中 key 的雜湊值是如何計算的,為何這麼計算?JavaHashMap
- “雲端計算”工作是如何讓企業受益的?
- 我是如何使計算提速>150倍的
- 計算機底層是如何訪問顯示卡的計算機
- 如何檢查你的計算機使用的是 UEFI 還是 BIOS計算機iOS
- 五分鐘掃盲:程式在計算機中是如何執行起來的計算機
- Base58編碼的長度是如何計算的?
- 你真的知道計算機是如何進行減法運算的嗎?計算機
- 關於計算buffer cache hit rate的精確演算法演算法
- 百度Apollo 3.5是如何設計Cyber RT計算框架的?框架
- IM應用中如何計算富文字的高度
- 未來的網際網路是雲端計算還是星計算
- UC Berkeley EECS是如何培養計算機學生的計算機
- 外甥女問我計算機是如何組成的?計算機
- 《Linux核心分析》 之 計算機是如何工作的。1Linux計算機
- 計算int變數中攸多少bit的值是1變數
- 在 MySQL 中,如何計算一組資料的中位數?MySql
- SQL Server 中 ntext 長度如何計算 ?SQLServer
- 好程式設計師雲端計算培訓分享雲端計算中SOA是什麼?程式設計師
- SQL 如何計算每個分組的中位數SQL
- 如何實現邊緣計算中的節點自治
- Java 中,如何計算兩個日期之間的差距?Java
- Android 中如何計算 App 的啟動時間?AndroidAPP
- Android中如何計算App的啟動時間?AndroidAPP
- mac下的LD_LIBRARY_PATH是DYLD_LIBRARY_PATHMac
- 我是如何把計算機網路考了100分的?計算機網路
- 【Python】我是如何使計算時間提速25.6倍的Python
- 好程式設計師雲端計算培訓分享雲端計算中微服務是什麼?程式設計師微服務