解決方法:在實際的工作中,很多人經常會用到statspack來計算一段時間內每兩個相鄰的snapshot的一些data的差值。
大家可以這樣用:
select stat1.value - stat2.value , snap_id from stats$systat stat1 , stats$systat stat2 where stat1.snap_id = stat2.snap_id + 1
但是,上面的這種情況必須保證snap_id沒有斷號,不然就會出現問題。
下面,我們來介紹一種更為縝密的view,在斷號時也可以正常的使用。
CREATE or replace VIEW stats$snapshot_1_2 AS
SELECT sn1.snap_id sn1,
(SELECT MIN(sn2.snap_id)
FROM stats$snapshot sn2
WHERE sn1.snap_id < sn2.snap_id)
AS
sn2 , snap_time
FROM stats$snapshot sn1;
最后的使用方法如下:
select stat1.value - stat2.value , snap_time from stats$systat stat1 , stats$systat stat2 ,stats$snapshot_1_2 sn where stat1.snap_id = sn.sn1 and stat2.snap_id=sn.sn2 and snap_time between ……
新聞熱點
疑難解答