ここではORACLEデータベースで、一時表領域を作成・変更・削除するSQLを紹介しています。
表領域の一覧や使用率の確認方法は↓で紹介しています。
>>【ORACLE】表領域の一覧や使用率を確認するSQL
一時表領域とは
一時表領域とは、データのソートやグループ化に利用される領域です。
通常、レコードのソートやグループ化はメモリで行われますが、一時的にメモリでは足りない場合に、一時表領域を利用してソートやグループ化を行います。
一時表領域を使う主な処理
・レコードのソート(ORDER BY)
・レコードの集約(GROUP BY/DISTINCT)
・ハッシュジョイン結合
一時表領域を作成する
一時表領域を作成するときはCREATE TABLESPACE文を使います。
CREATE TABLESPACE文のオプションについては↓で紹介していますので参考にしてください。
>>【ORACLE】表領域を作成・変更・削除するSQL
CREATE TEMPORARY TABLESPACE tps1
TEMPFILE 'c:\ORACLE\DATA\tmp1.dbf' SIZE 100M;
一時表領域を変更する
ALTER文を使うことで、一時表領域を変更することが出来ます。
一時表領域の名前を変更するSQL
ALTER TABLESPACE tbs1 RENAME TO tbs2;
デフォルト一時表領域を変更するSQL
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tps1;
一時表領域のサイズを拡張・縮小する
一時表領域のサイズを拡張・縮小するSQL
ALTER DATABASE TEMPFILE 'c:\ORACLE\DATA\tmp1.dbf' RESIZE 100M;
データファイルのサイズを拡張・縮小するSQL
・データファイルサイズの確認方法
select a.FILE_NAME,a.TABLESPACE_NAME,a.BYTES from dba_temp_files a;
・データファイルサイズの拡張方法
alter database tempfile '/oracle/oradata/xxDB/data/temp01.dbf' resize 100M;
一時表領域を解放する
肥大化した一時表領域を解放するときは、ALTER TABLESPACE~SHRINK SPACE文を使います。
SHRINK SPACE句は一時表領域名でのみ有効です。
一時表領域名と縮小後のサイズを指定します。KEEP句を省略した場合は可能な限り縮小します。
ALTER TABLESPACE 一時表領域名 SHRINK SPACE KEEP サイズ;
次のSQLでは200Mまで縮小しています。
ALTER TABLESPACE tmp01 SHRINK SPACE KEEP 200M;
一時表領域を削除する
DROP文を使うことで一時表領域を削除することが出来ます。
DROP TABLESPACE tbs1 INCLUDING CONTENTS AND DATAFILES;
DROP文のオプションについては↓で紹介していますので参考にしてください。
>>【ORACLE】表領域を作成・変更・削除するSQL
まとめ
一時表領域の作成はCREATE TABLESPACE、変更はALTER文、削除はDROP文を使います。
一時表領域の作成や変更、削除には↓の権限が必要です。
作成:CREATE TABLESPACE
変更:ALTER TABLESPACE
削除:DROP TABLESPACE
システム権限の付与の方法については↓で紹介していますので参考にしてください。
>>【ORACLE】システム権限を付与・取消するSQL