加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle查询表空间的使用情况和数据文件是否拓展及剩余可拓展大小

发布时间:2020-12-12 14:32:37 所属栏目:百科 来源:网络整理
导读:Oracle查询表空间的使用情况和数据文件是否拓展及剩余可拓展大小 SELECT R1.*,R2.MAX_SIZE_GB FROM(SELECT /*+ ORDERED */A.TABLESPACE_NAME TABLESPACE_NAME,ROUND(A.BYTES / 1024 / 1024 / 1024,2) CURRENT_SIZE_GB,ROUND((A.BYTES - B.BYTES) / 1024 / 10

Oracle查询表空间的使用情况和数据文件是否拓展及剩余可拓展大小

SELECT R1.*,R2.MAX_SIZE_GB FROM
(SELECT  /*+ ORDERED */
A.TABLESPACE_NAME TABLESPACE_NAME,ROUND(A.BYTES / 1024 / 1024 / 1024,2) CURRENT_SIZE_GB,ROUND((A.BYTES - B.BYTES) / 1024 / 1024 / 1024,2) USED_SIZE_GB,ROUND(B.BYTES / 1024 / 1024 / 1024,2) FREE_SIZE_GB,ROUND(((A.BYTES - B.BYTES) / A.BYTES) * 100,2) PERCENT_USED_RATE
  FROM (SELECT TABLESPACE_NAME,SUM(BYTES) BYTES
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME,SUM(BYTES) BYTES,MAX(BYTES) LARGEST
          FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) B
 WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME
 ORDER BY A.TABLESPACE_NAME) R1,(SELECT /*+ ORDERED */
 D.TABLESPACE_NAME TABLESPACE_NAME,ROUND(SUM(D.BYTES) / 1024 / 1024 / 1024,ROUND(SUM(D.MAXBYTES) / 1024 / 1024 / 1024,2) MAX_SIZE_GB
  FROM SYS.DBA_DATA_FILES D,V$DATAFILE V,(SELECT VALUE FROM V$PARAMETER WHERE NAME = 'db_block_size') E
 WHERE (D.FILE_NAME = V.NAME)
 GROUP BY D.TABLESPACE_NAME) R2
 WHERE R1.TABLESPACE_NAME = R2.TABLESPACE_NAME;


执行效果如下:

这条语句应该还有优化的空间,懂得SQL优化的DBA可以试试,然后回复下我,谢谢!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读