plsqlでテーブルスペースの使用率を表示するにはどうすればいいですか?
表領域の使用率を確認するには、以下の方法のうちいずれかを使用できます:
- データベース管理者が管理するテーブルスペース
SELECT tablespace_name, round((1 - (free_space / total_space)) * 100, 2) as usage_rate
FROM dba_tablespaces;
全ての表領域の名前と使用率(パーセンテージで表示)を返します。
- データベースの空き容量
- データベースのデータファイル
SELECT f.tablespace_name, round((1 - (sum(f.bytes) / d.bytes)) * 100, 2) as usage_rate
FROM dba_free_space f
JOIN dba_data_files d ON f.tablespace_name = d.tablespace_name
GROUP BY f.tablespace_name, d.bytes;
各テーブルスペースの名前と使用率(パーセンテージ表示)が返されます。
- V$テーブルスペース
SELECT name, round((1 - (free_blocks / total_blocks)) * 100, 2) as usage_rate
FROM v$tablespace;
すべてのテーブルスペースの名前と使用率(パーセンテージ表記)が返されます。
これらのクエリは表領域の全体的な使用率を返します。特定の表やインデックスの使用率を確認したい場合は、DBA_SEGMENTSビューをクエリしてください。