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

  • 来源: 赛迪网 作者: 若水   2008-05-13/00:52
  • 问题:如何得到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 ……


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多