ノンストップデータベース HiRDB Version 9 解説(Windows(R)用)
一時表は,トランザクション又はSQLセッションの期間中だけ存在する実表です。トランザクションの期間中だけ存在する一時表をトランザクション固有一時表,SQLセッションの期間中だけ存在する一時表をSQLセッション固有一時表といいます。
一時表は,表定義時点では作成されません。一時表に対して,最初にINSERT文が実行されたときに表が作成されます。このことを,一時表の実体化といいます。
また,一時表は一つの表定義に対して接続(CONNECT文実行)ごとに専用の表が作成されるため,複数ユーザが同時に使用しても,ほかのユーザのデータ操作(参照,挿入,更新,又は削除)の影響を受けません。一時表及び一時表に定義したインデクス(一時インデクス)は,一時表用RDエリアに格納され,トランザクションの決着時又はSQLセッションの終了時に,自動的に削除されます。
一時表の概要を次の図に示します。
図3-23 一時表の概要
一時表については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。
実体化された一時表のデータ有効期間(実体が存在する期間)は,その一時表がトランザクション固有一時表か,SQLセッション固有一時表かによって異なります。一時表のデータ有効期間の開始及び終了タイミングを次の表に示します。
表3-6 一時表のデータ有効期間の開始と終了
| 一時表の種類 | 開始となるタイミング | 終了となるタイミング |
|---|---|---|
| トランザクション固有一時表 | トランザクション中で,一時表に対して最初にINSERT文が実行されたとき | トランザクションが決着したとき |
| SQLセッション固有一時表 | SQLセッション中で,一時表に対して最初にINSERT文が実行されたとき |
|
定義系SQLのCREATE TABLEでGLOBAL TEMPORARYを指定します。トランザクション固有一時表を定義する場合はON COMMIT DELETE ROWSを,SQLセッション固有一時表を定義する場合はON COMMIT PRESERVE ROWSを指定します。なお,一時表の場合,指定できない,又は指定しても無視されるオペランドがあります。詳細については,マニュアル「HiRDB Version 9 SQLリファレンス」のCREATE TABLEを参照してください。
基本的に,通常のインデクスの定義と同じです。一時インデクスも一時表と同様に,指定できない,又は指定しても無視されるオペランドがあります。詳細については,マニュアル「HiRDB Version 9 SQLリファレンス」のCREATE INDEXを参照してください。
クライアント環境定義PDTMPTBLRDAREAに使用する一時表用RDエリア名を指定します。複数のRDエリアを指定した場合や,この環境定義の指定を省略した場合,次の規則に従ってHiRDBがデータを格納する一時表用RDエリアを決定します。
なお,XDSクライアントではPDTMPTBLRDAREAの指定は無視されるため,指定省略時と同じになります。
格納先RDエリアの決定規則については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。
次に示す運用コマンド又はユティリティは,一時表に対して実行できません。詳細は,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。
次に示すSQLは,一時表又は一時インデクスを指定できないなどの制限があります。詳細は,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。
All Rights Reserved. Copyright (C) 2010, 2013, Hitachi, Ltd.