Oracleにて、表領域ごとの使用量、使用率、空き容量を表示するSQLを書いてみた。
SQL
select DBA_DATA_FILES.TABLESPACE_NAME ,min(DBA_DATA_FILES.BYTES)/1024/1024 as "現サイズ(MB)" ,round(min(DBA_DATA_FILES.BYTES)/(1024*1024) - sum(DBA_FREE_SPACE.BYTES)/ (1024 *1024),2) as "使用量(MB)" ,round( (min(DBA_DATA_FILES.BYTES)/(1024 *1024) - sum(DBA_FREE_SPACE.BYTES)/(1024 *1024))/ (min(DBA_DATA_FILES.BYTES)/1024/1024) *100,2) as "使用率(%)" ,round(sum(DBA_FREE_SPACE.BYTES)/(1024 *1024),2) "空き容量(MB)" from DBA_DATA_FILES ,DBA_FREE_SPACE where 1=1 and DBA_DATA_FILES.FILE_ID = DBA_FREE_SPACE.FILE_ID group by DBA_DATA_FILES.TABLESPACE_NAME order by 1
実行結果例
NAME | SIZE(MB) | 使用量(MB) | 使用率(%) | 空き(MB) |
---|---|---|---|---|
TABLESPACE01 | 4103.3 | 2899.2 | 70.66 | 1204 |
TABLESPACE02 | 730 | 676.5 | 92.68 | 53.44 |
TABLESPACE03 | 370 | 361.3 | 97.65 | 8.69 |
SQL plusで実行したい場合は、1行あたりの表示文字数を変更。
set linesize 500
など。