【ORACLE】一時表領域を作成・変更・サイズ拡張・解放・削除する方法


ここでは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