【ORACLE】テーブル容量の確認
テーブルの容量はDBA_SEGMENTS.BYTESに格納されているので、
SEGMENT_NAMEにテーブル名を与えればゲットすることが出来る
SELECT SEGMENT_NAME,BYTES
FROM DBA_SEGMENTS
WHERE SEGMENT_NAME = :TAB_NAME
BYTESは単位が本当に「バイト」なので、
キロバイトにするなら÷1024
メガバイトにするなら÷(1024^2)
ギガバイトにするなら÷(1024^3)
をする必要がある。
取得してきた後にEXCELとか電卓とかで計算してもいいけど
面倒な場合は取得するときに割ればよい。
SELECT SEGMENT_NAME ,BYTES ,BYTES/1024 K_BYTES ,BYTES/1024/1024 M_BYTES ,BYTES/1024/1024/1024 G_BYTES FROM DBA_SEGMENTS WHERE SEGMENT_NAME = :TAB_NAME
なお、パーティション表の場合は、
SEGMENT_NAMEがテーブル名
PARTITION_NAMEがパーティション名になり、
単にSEGMENT_NAMEだけ与えただけではパーティションの数だけ結果が返ってくる。
SELECT項目にPARTITION_NAMEを加えた方が良い。
続きがあります