2008年11月17日月曜日

[Oracle][SQL]テンポラリテーブルについて

リカバリ不要なワークテーブルとかに使う。

<特徴>
・REDOログを生成しないので高速にDML処理できる。
・生成したレコードは、生成したセッションからのみ参照できる。
・コミット後もしくはセッション終了後、データは削除(TRUNCATE)される。
・一時表領域を使用する。


<制限事項>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

<定義登録方法>
▼SQL文
CREATE GLOBAL TEMPORARY TABLE 表1
(
 列名 データ型...
)
ON COMMIT[DELETE ROWS | PRESERVE ROWS]
;

▼テンポラリテーブルのレコードをクリアするタイミングを設定する。
・DELETE ROWS
トランザクション終了時にデータをクリアする。

・PRESERVE ROWS
セッション終了時にデータをクリアする。
※外部アプリがDB接続をコネクションプーリングしている場合、要注意かも。


[Appendix]
・統計情報はどうなる?

0 件のコメント: