テンポラリテーブル(一時表)
テンポラリテーブル(一時表)は、オプションの指定によりセッションの間またはトランザクションの間データを保持することができるテーブルです。また、テーブル定義は永続化され、レコードのみが一時的に保持されます。
テンポラリテーブルを使用するメリットは、処理が終わった後にデータを保存する必要のないような一時的なデータを扱いたい場合に便利です。使用例としては、中間ワークテーブルを使用する場合ですかね。(^^)
一時表を使う理由は、REDOログの書き込みがないため普通のテーブルを使用するよりパフォーマンス面でいい結果がでやすいからだと思います。
テンポラリテーブル(一時表)の作成
以下に一時表の作成する構文を示します。
CREATE GLOBAL TEMPORARY TABLE <テーブル名> ( <列名1> <データ型> , <列名2> <データ型> , ... )ON COMMIT [DELETE ROWS | PRESERVE ROWS];
オプション | 内容 |
---|---|
ON COMMIT DELETE ROWS | トランザクション内でデータを保持して、コミット後にデータが削除されます。 |
ON COMMIT PRESERVE ROWS | セッション内でデータを保持して、セッション終了時にデータが削除されます。 |
ちなみにデフォルト設定は、「ON COMMIT DELETE ROWS」で、トランザクションの間だけデータ保持します。
SQL> CREATE GLOBAL TEMPORARY TABLE TEST_TMP_TABLE 2 ( 3 id VARCHAR2(10) , 4 name VARCHAR2(50) 5 )ON COMMIT DELETE ROWS; 表が作成されました。
テンポラリテーブル(一時表)の削除
一時表を削除する場合は、テーブルを削除するときと同じように「DROP TABLE」文を発行して削除することができます。
DROP TABLE <テーブル名>
SQL> DROP TABLE TEST_TMP_TABLE; 表が削除されました。
コメント