3.2 スキーマ
3.3.17 一時表
中間処理結果を一時的に保存する必要があるような複雑な処理をするバッチ業務などに一時表の使用 をお勧めします。
一時表については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。
(1) 一時表のデータ有効期間
実体化された一時表のデータ有効期間(実体が存在する期間)は,その一時表がトランザクション固有一時 表か,SQL セッション固有一時表かによって異なります。一時表のデータ有効期間の開始及び終了タイミ ングを次の表に示します。
表 3‒6 一時表のデータ有効期間の開始と終了
一時表の種類 開始となるタイミング 終了となるタイミング
トランザクション固有一時表 トランザクション中で,一時表に対して 最初に INSERT 文が実行されたとき
トランザクションが決着したとき
SQL セッション固有一時表 SQL セッション中で,一時表に対して最 初に INSERT 文が実行されたとき
• SQL セッションが終了したとき
• 一時表を実体化したバックエンドサーバ が終了したとき
• 一時表を実体化したバックエンドサーバ があるユニットが終了したとき
• 一時表を実体化したバックエンドサーバ,
又はそのバックエンドサーバがあるユ ニットに対して系切り替えが発生したと き
! 注意事項
一時表のデータ有効期間外に,一時表に対して検索,更新,及び削除を実行しても,データがない表に対して SQL を実行したときと同じ結果になります。
(2) 一時表及び一時インデクスの定義方法
(a) 一時表を定義する場合
定義系 SQL のCREATE TABLEでGLOBAL TEMPORARYを指定します。トランザクション固有一時表 を定義する場合はON COMMIT DELETE ROWSを,SQL セッション固有一時表を定義する場合はON COMMIT PRESERVE ROWSを指定します。なお,一時表の場合,指定できない,又は指定しても無視さ れるオペランドがあります。詳細については,マニュアル「HiRDB Version 9 SQL リファレンス」の CREATE TABLE を参照してください。
(b) 一時インデクスを定義する場合
基本的に,通常のインデクスの定義と同じです。一時インデクスも一時表と同様に,指定できない,又は指 定しても無視されるオペランドがあります。詳細については,マニュアル「HiRDB Version 9 SQL リファ レンス」の CREATE INDEX を参照してください。
(c) データを格納する一時表用 RD エリアを指定する場合
クライアント環境定義PDTMPTBLRDAREAに使用する一時表用 RD エリア名を指定します。複数の RD エリアを指定した場合や,この環境定義の指定を省略した場合,次の規則に従って HiRDB がデータを格納
• PDTMPTBLRDAREA に複数の RD エリアを指定している場合
指定した RD エリアに特定 SQL セッション占有属性と SQL セッション間共有属性の一時表用 RD エ リアが混在しているときは,特定 SQL セッション占有属性の一時表用 RD エリアを優先して使用しま す。
• PDTMPTBLRDAREA の指定を省略している場合
SQL セッション間共有属性の一時表用 RD エリアを使用します。
なお,XDS クライアントでは PDTMPTBLRDAREA の指定は無視されるため,指定省略時と同じになり ます。
格納先 RD エリアの決定規則については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を 参照してください。
(3) 一時表使用時の制限事項
(a) 運用コマンド又はユティリティ
次に示す運用コマンド又はユティリティは,一時表に対して実行できません。詳細は,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。
• pdorbegin コマンド【UNIX 版限定】
• 最適化情報収集ユティリティ(pdgetcst)
• データベース作成ユティリティ(pdload)
• グローバルバッファ常駐化ユティリティ(pdpgbfon)
• 空きページ解放ユティリティ(pdreclaim)
• データベース再編成ユティリティ(pdrorg)
(b) SQL
次に示す SQL は,一時表又は一時インデクスを指定できないなどの制限があります。詳細は,マニュアル
「HiRDB Version 9 SQL リファレンス」を参照してください。
• 定義系 SQL
ALLOCATE MEMORY TABLE ALTER INDEX
ALTER TABLE CREATE INDEX CREATE TABLE CREATE TRIGGER GRANT
REVOKE
• 操作系 SQL
ALLOCATE CURSOR 文 ASSIGN LIST 文
DECLARE CURSOR 文 動的 SELECT 文
SELECT 文(表参照,問合せ式 形式 2)
3 データベースの論理構造
83
DELETE 文 UPDATE 文
• 制御系 SQL COMMIT 文 DISCONNECT 文 ROLLBACK 文 LOCK TABLE 文
SET SESSION AUTHORIZATION 文