如何得到两个相邻snap_id中的一个list

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  举报/纠错

问题:如何得到Statspack的两个相邻snap_id 的一个list?

解决方法:在实际的工作中,很多人经常会用到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 ……

举报/纠错
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005-2025 王朝網路 版權所有 聯絡我們導航