表領域の使用率を確認するSQL

この記事ではSQLによって表領域の使用率を確認する方法を解説します。

 表領域を確認するSQL

表領域はEM ExpressなどのGUIでも確認できますが、SQLで調べたほうが手っ取り早い場合もあります。

下記のSQLを実行することで、表領域のサイズ、使用量、使用率、空き容量を調べることができます。


select a.TABLESPACE_NAME
, min(a.BYTES)/1024/1024 "現サイズ(MB)"
, round(min(a.BYTES)/(1024*1024) - sum(b.BYTES)/ (1024*1024),2) "使用量(MB)"
, round((min(a.BYTES)/(1024*1024) - sum(b.BYTES)/(1024*1024))/ 
(min(a.BYTES)/1024/1024)*100,2) "使用率(%)"
, round(sum(b.BYTES)/(1024*1024),2) "空き容量(MB)"
from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.TABLESPACE_NAME;  


 実行例


SQL> select a.TABLESPACE_NAME
  2  , min(a.BYTES)/1024/1024 "現サイズ(MB)"
  3  , round(min(a.BYTES)/(1024*1024) - sum(b.BYTES)/ (1024*1024),2) "使用量(MB)"
  4  , round((min(a.BYTES)/(1024*1024) - sum(b.BYTES)/(1024*1024))/
  5  (min(a.BYTES)/1024/1024)*100,2) "使用率(%)"
  6  , round(sum(b.BYTES)/(1024*1024),2) "空き容量(MB)"
  7  from dba_data_files a, dba_free_space b
  8  where a.FILE_ID = b.FILE_ID
  9  group by a.TABLESPACE_NAME;

TABLESPACE_NAME  現サイズ(MB)     使用量(MB)     使用率(%)     空き容量(MB)
--------------- ------------- -------------- ------------- ----------------
UNDOTBS1                  100          14.88         14.88            85.13
SYSAUX                    490         461.81         94.25            28.19
SYSTEM                    290         282.31         97.35             7.69
USERS                       5           1.00         20.00             4.00
TESTTBS                     5           1.06         21.25             3.94