在Oracle中,如何查询到数据库的增长情况?
可以通过视图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;
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




