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

资讯 驱动中国 若水 820 次阅读 0 条评论
分享 Q

问题:如何得到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 ……

一个 得到 两个 如何 stats systat snap_
版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友