暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Oracle中,如何查询到数据库的增长情况?

DB宝 2017-06-09
903



Q
题目如下所示:

在Oracle中,如何查询到数据库的增长情况


     

A
答案如下所示:



可以通过视图DBA_HIST_TBSPC_SPACE_USAGE来获取数据库的增长情况,具体查询语句及结果如下所示:

SELECT TO_CHAR(DATETIME, 'YYYY-MM-DD') DATETIME,

       TRUNC(SUM(TS_USED_SIZE) 1024 1024) TS_USED_SIZE_M,

       TRUNC(SUM(TS_SIZE) 1024 1024) TS_SIZE_M,

       TRUNC(SUM(TS_MAXSIZE) / 1024 / 1024) TS_MAXSIZE_M

  FROM (SELECT A.NAME, B.*

          FROM V$TABLESPACE A,

               (SELECT TABLESPACE_ID TS#,

                       TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS')) DATETIME,

                       (MAX(TABLESPACE_USEDSIZE * 8 * 1024)) TS_USED_SIZE,

                       (MAX(V.TABLESPACE_SIZE * 8 * 1024)) TS_SIZE,

                       (MAX(TABLESPACE_MAXSIZE * 8 * 1024)) TS_MAXSIZE

                  FROM DBA_HIST_TBSPC_SPACE_USAGE V

                 WHERE TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS')) >=

                       TRUNC(SYSDATE - 15)

                 GROUP BY TABLESPACE_ID,

                          TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS'))

                 ORDER BY TABLESPACE_ID,

                          TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS'))) B

         WHERE A.TS# = B.TS#)

 GROUP BY TO_CHAR(DATETIME, 'YYYY-MM-DD')

 ORDER BY DATETIME;


若是需要按照表空间来展示,则可以运行如下的代码:

SELECT A.NAME,

       B.TS#,

       TO_CHAR(DATETIME, 'YYYY-MM-DD') DATETIME,

       TS_USED_SIZE_M,

       TS_SIZE_M,

       TS_MAXSIZE_M

  FROM V$TABLESPACE A,

       (SELECT TABLESPACE_ID TS#,

               TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS')) DATETIME,

               TRUNC(MAX(TABLESPACE_USEDSIZE * 8 * 1024)/1024/1024) TS_USED_SIZE_M,

               TRUNC(MAX(V.TABLESPACE_SIZE * 8 * 1024)/1024/1024) TS_SIZE_M,

               TRUNC(MAX(TABLESPACE_MAXSIZE * 8 * 1024)/1024/1024) TS_MAXSIZE_M

          FROM DBA_HIST_TBSPC_SPACE_USAGE V

         WHERE TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS')) >=

               TRUNC(SYSDATE - 7)

         GROUP BY TABLESPACE_ID,

                  TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS'))

         ORDER BY TABLESPACE_ID,

                  TRUNC(TO_DATE(RTIME, 'MM/DD/YYYY HH24:MI:SS'))) B

 WHERE A.TS# = B.TS#

 ORDER BY B.TS#, B.DATETIME;





DB笔试面试历史连接

http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:230161599

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。

最后修改时间:2020-01-10 21:12:20
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论