Oracle - TABLESPACE
-- 表領域確認
set pages999
set lin200
select
d.tablespace_name,
TOTAL_SIZE "現サイズ[MB]",
round(TOTAL_SIZE-FREE_SIZE) "使用量[MB]",
round*1*100) "使用率(%)",
FREE_SIZE "空き容量[MB]"
from
(SELECT tablespace_name, round(SUM(bytes)/(1024*1024)) "TOTAL_SIZE"
FROM dba_data_files GROUP BY tablespace_name) d,
(SELECT tablespace_name, round(SUM(bytes)/(1024*1024)) "FREE_SIZE"
FROM dba_free_space GROUP BY tablespace_name) f
where d.tablespace_name=f.tablespace_name;
-- 表領域作成
CREATE TABLESPACE tablespace_name
SIZE 123M AUTOEXTEND ON
NEXT 246M
MAXSIZE UNLIMITED
BLOCKSIZE 8K
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 3M または EXTENT MANAGEMENT LOCAL AUTOALLOCATE
-- ↑ ローカル管理 UNFORM で SIZE 句を省略した場合には 1M
SEGMENT SPACE MANAGEMENT AUTO ;
-- ↑ 自動セグメント領域管理
-- 表領域の管理方式の変換
-- ディクショナリ管理表領域からローカル管理表領域に変換したい場合には、DBMS_SPACE_ADMIN パッケージを使用する。
EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('TABLE_SPACE_NAME');
-- エクステント、セグメント管理方法確認
SQL> select TABLESPACE_NAME, EXTENT_MANAGEMENT,SEGMENT_SPACE_MANAGEMENT FROM DBA_TABLESPACES;
*1:1 - (FREE_SIZE/TOTAL_SIZE