表領域の使用量の確認するSQL

性能試験などで巨大サイズのデータを扱った作業をする時に、よく発生する問題が『DBの表領域不足 』。そんな時に、表領域の使用量を確認するためのSQL。

そのまま、コピペで使える。

select
     tablespace_name,
     to_char(nvl(total_bytes / 1024, 0), ’999, 999, 999′) as “size(MB) ”,
     to_char(nvl((total_bytes – free_total_bytes) / 1024 / 1024, 0), ’999, 999, 999′) as “used(MB) ”,
     to_char(nvl(free_total_bytes / 1024 / 1024, 0), ’999, 999, 999′) as “free(MB) ”,
     round(nvl((total_bytes – free_total_bytes) / total_bytes * 100, 100), 2) as “used(%) ”
 from
     (
         select
             tablespace_name,
             sum(bytes) total_bytes
         from
             dba_data_files
         group by
             tablespace_name
     ),
     (
         select
             tablespace_name free_tablespace_name,
             sum(bytes) free_total_bytes
         from
             dba_free_space
         group by
             tablespace_name
     )
 where
     tablespace_name = free_tablespace_name(+)

実行結果は、こんな感じ ↓

TABLESPACE_NAME | SIZE(MB) | USED(MB) | FREE(MB) | USED(%)
 ————————————————————————————————————————————————————————————
 SYSTEM          | 1500     | 1472     | 14       | 98.12
 SYSAUX          | 1266     | 789      | 1183     | 93.45
 UNDOTBS1        | 500      | 26       | 474      | 5.38
 HOGE            | 3335     | 70       | 3265     | 2.08

以上

jiino@newspicks-from-ji.com
  • jiino@newspicks-from-ji.com

コメントする

メールアドレスが公開されることはありません。