Oracle查询表空间的每日增长量

#############################历史数据库增量,适用各版本oracle=============

SELECT day,total_GB,used_GB,total_GB-used_GB free_GB,round(100*used_GB/total_GB,2) used_percent,case when(used_GB=used_GB-LAG(used_GB,1,0)OVER(ORDER BY day)) then null else used_GB-LAG(used_GB,1,0)OVER(ORDER BY day) end incr_GB
 from 
 (select to_char(snap.END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff') day,
       round(sum(tsu.TABLESPACE_SIZE * dt.BLOCK_SIZE) / (1024 * 1024 * 1024),2) total_GB,
       round(sum(tsu.TABLESPACE_USEDSIZE * dt.BLOCK_SIZE) / (1024 * 1024 * 1024),2) used_GB
  from DBA_HIST_TBSPC_SPACE_USAGE tsu,
       DBA_HIST_SNAPSHOT          snap,
       V$TABLESPACE               vt,
       DBA_TABLESPACES            dt
 where tsu.SNAP_ID = snap.SNAP_ID
   and tsu.DBID = snap.DBID
   and snap.instance_number = 1
   and tsu.TABLESPACE_ID = vt.TS#
   and vt.NAME = dt.TABLESPACE_NAME 
   and SUBSTR(to_char(END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff'),12,5)='00:00'
 group by snap.END_INTERVAL_TIME
 order by snap.END_INTERVAL_TIME desc) a 
 order by day desc;

显示效果如下:

===改造不包含某些表空间的增量参考=========

SELECT day,total_GB,used_GB,total_GB-used_GB free_GB,round(100*used_GB/total_GB,2) used_percent,case when(used_GB=used_GB-LAG(used_GB,1,0)OVER(ORDER BY day)) then null else used_GB-LAG(used_GB,1,0)OVER(ORDER BY day) end incr_GB
 from 
 (select to_char(snap.END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff') day,
       round(sum(tsu.TABLESPACE_SIZE * dt.BLOCK_SIZE) / (1024 * 1024 * 1024),2) total_GB,
       round(sum(tsu.TABLESPACE_USEDSIZE * dt.BLOCK_SIZE) / (1024 * 1024 * 1024),2) used_GB
  from DBA_HIST_TBSPC_SPACE_USAGE tsu,
       DBA_HIST_SNAPSHOT          snap,
       V$TABLESPACE               vt,
       DBA_TABLESPACES            dt
 where tsu.SNAP_ID = snap.SNAP_ID
   and tsu.DBID = snap.DBID
   and snap.instance_number = 1
   and tsu.TABLESPACE_ID = vt.TS#
   and vt.NAME = dt.TABLESPACE_NAME
   -- and dt.TABLESPACE_NAME='USERS'  --包含特定表空间
   and dt.TABLESPACE_NAME not in ('SYSTEM','SYSAUX')--不包括系统表空间和辅助表空间
   and dt.contents not in ('TEMPORARY','UNDO') --不包括临时表空间和UNDO表空间
   and SUBSTR(to_char(END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff'),12,5)='00:00'
 group by snap.END_INTERVAL_TIME
 order by snap.END_INTERVAL_TIME desc) a 
 order by day desc;

显示效果如下:

http://blog.itpub.net/26736162/viewspace-2657751/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值