表空间利用率:修改前与修改后的代码片段

ZDNet软件频道 时间:2009-12-03 作者: | 赛迪网 我要评论()
本文关键词:Server 服务器 SQL
ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACEFROM V$TEMP_SPACE_HEADERGROUP BY TABLESPACE_NAME) FWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)) torder by "USED_RATE(%)" desc;

  表空间的利用率:

  修改前:

  select t.*

  from (SELECT D.TABLESPACE_NAME,

  SPACE "SUM_SPACE(M)",

  BLOCKS SUM_BLOCKS,

  SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",

  ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",

  FREE_SPACE "FREE_SPACE(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,

  SUM(BLOCKS) BLOCKS

  FROM DBA_DATA_FILES

  GROUP BY TABLESPACE_NAME) D,

  (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE

  FROM DBA_FREE_SPACE

  GROUP BY TABLESPACE_NAME) F

  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

  UNION ALL --if have tempfile

  SELECT D.TABLESPACE_NAME,

  SPACE "SUM_SPACE(M)",

  BLOCKS SUM_BLOCKS,

  USED_SPACE "USED_SPACE(M)",

  ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) "USED_RATE(%)",

  NVL(FREE_SPACE, 0) "FREE_SPACE(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,

  SUM(BLOCKS) BLOCKS

  FROM DBA_TEMP_FILES

  GROUP BY TABLESPACE_NAME) D,

  (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,

  ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE

  FROM V$TEMP_SPACE_HEADER

  GROUP BY TABLESPACE_NAME) F

  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)) t

  order by "USED_RATE(%)" desc;

  修改后:

  select t.*

  from (SELECT D.TABLESPACE_NAME,

  SPACE "SUM_SPACE(M)",

  BLOCKS SUM_BLOCKS,

  SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",

  ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",

  FREE_SPACE "FREE_SPACE(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,

  SUM(BLOCKS) BLOCKS

  FROM DBA_DATA_FILES

  GROUP BY TABLESPACE_NAME) D,

  (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE

  FROM DBA_FREE_SPACE

  GROUP BY TABLESPACE_NAME) F

  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

  UNION ALL --if have tempfile

  SELECT D.TABLESPACE_NAME,

  SPACE "SUM_SPACE(M)",

  BLOCKS SUM_BLOCKS,

  USED_SPACE "USED_SPACE(M)",

  ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) "USED_RATE(%)",

  SPACE - USED_SPACE "FREE_SPACE(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,

  SUM(BLOCKS) BLOCKS

  FROM DBA_TEMP_FILES

  GROUP BY TABLESPACE_NAME) D,

  (SELECT TABLESPACE,

  ROUND(SUM(BLOCKS * 8192) / (1024 * 1024), 2) USED_SPACE

  FROM V$SORT_USAGE

  GROUP BY TABLESPACE) F

  WHERE D.TABLESPACE_NAME = F.TABLESPACE(+)) t

  order by "USED_RATE(%)" desc;

Server

服务器

SQL


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134