學習動態性能表數據庫
第二篇--v$sesstat 2007.5.25c#
按照OracleOnlineBook中的描述,v$sesstat存儲session從login到logout的詳細資源使用統計。session
相似於v$sysstat,該視圖存儲下列類別的統計:性能
注意:學習
若是初始參數STATISTICS_LEVEL被設置爲TYPICAL或ALL,時間統計被數據庫自動收集若是STATISTICS_LEVEL被設置爲BASIC,你必須設置TIMED_STATISTICS值爲TRUE以打開收集功能。this
若是你已設置了DB_CACHE_ADVICE,TIMED_STATISTICS或TIMED_OS_STATISTICS,或在初始參數文件或使用ALTER_SYSTEM或ALTER SESSION,那麼你所設定的值的值將覆蓋STATISTICS_LEVEL的值。事件
v$sysstat和v$sesstat差異以下:資源
v$sesstat可被用於找出以下類型session:it
在V$SESSTAT中使用統計io
多數v$sesstat中的統計參考是v$sysstat描述的子集,包括session logical reads, CPU used by this session, db block changes, redo size, physical writes, parse count (hard), parse count (total), sorts (memory), and sorts (disk).
V$SESSTAT經常使用列說明
示例1:下列找出當前session中最高的logical和Physical I/O比率.
下列SQL語句顯示了全部鏈接到數據庫的session邏輯、物理讀比率(每秒)。logical和physical I/O比率是經過自登錄後的時間消耗計算得出。對於sessions鏈接到數據庫這種長週期操做而言也許不夠精確,不過作個示例卻足夠了。
先得到session邏輯讀和物理讀統計項的STATISTIC#值:
SELECT name, statistic#
FROM V$STATNAME
WHERE name IN ('session logical reads','physical reads') ;
NAME STATISTIC#
------------------------------ ----------
session logical reads 9
physical reads 40
經過上面得到的STATISTIC#值執行下列語句:
SELECT ses.sid
, DECODE(ses.action,NULL,'online','batch') "User"
, MAX(DECODE(sta.statistic#,9,sta.value,0))
/greatest(3600*24*(sysdate-ses.logon_time),1) "Log IO/s"
, MAX(DECODE(sta.statistic#,40,sta.value,0))
/greatest(3600*24*(sysdate-ses.logon_time),1) "Phy IO/s"
, 60*24*(sysdate-ses.logon_time) "Minutes"
FROM V$SESSION ses
, V$SESSTAT sta
WHERE ses.status = 'ACTIVE'
AND sta.sid = ses.sid
AND sta.statistic# IN (9,40)
GROUP BY ses.sid, ses.action, ses.logon_time
ORDER BY
SUM( DECODE(sta.statistic#,40,100*sta.value,sta.value) )
/ greatest(3600*24*(sysdate-ses.logon_time),1) DESC;
SID User Log IO/s Phy IO/s Minutes
----- ------ -------- -------- -------
1951 batch 291 257.3 1
470 online 6,161 62.9 0
730 batch 7,568 43.2 197
2153 online 1,482 98.9 10
2386 batch 7,620 35.6 35
1815 batch 7,503 35.5 26
1965 online 4,879 42.9 19
1668 online 4,318 44.5 1
1142 online 955 69.2 35
1855 batch 573 70.5 8
1971 online 1,138 56.6 1
1323 online 3,263 32.4 5
1479 batch 2,857 35.1 3
421 online 1,322 46.8 15
2405 online 258 50.4 8
示例2:又例如經過v$sesstat和v$statname鏈接查詢某個SID各項信息。
select a.*,b.name
from v$sesstat a,v$statname b
where a.sid=10 and a.statistic#=b.statistic#;