Hitachi

ノンストップデータベース HiRDB Version 9 システム導入・設計ガイド(Windows(R)用)


12.22 一時表

一時表は,トランザクション又はSQLセッションの期間中だけ存在する実表です。トランザクションの期間中だけ存在する一時表をトランザクション固有一時表,SQLセッションの期間中だけ存在する一時表をSQLセッション固有一時表といいます。

一時表は,表定義時点では作成されません。一時表に対して,最初にINSERT文が実行されたときに表が作成されます。このことを,一時表の実体化といいます。

また,一時表は一つの表定義に対して接続(CONNECT文実行)ごとに専用の表が作成されるため,複数ユーザが同時に使用しても,ほかのユーザのデータ操作(参照,挿入,更新,又は削除)の影響を受けません。一時表及び一時表に定義したインデクス(一時インデクス)は,一時表用RDエリアに格納され,トランザクションの決着時又はSQLセッションの終了時に,自動的に削除されます。一時表用RDエリアについては,「一時表用RDエリア」を参照してください。

一時表の概要を次の図に示します。

図12‒45 一時表の概要

[図データ]

一時表の効果
  • トランザクション又はSQLセッションで複雑な処理を行う場合,中間処理結果を一時的に保持し,更に加工して最終的な結果を得るなど,作業用の表として使用できます。

  • データ件数が多い表の一部のデータに対してトランザクション又はSQLセッション内で頻繁にアクセスする場合,該当するデータを一時表に格納することで入出力回数を削減でき,性能向上できます。

  • 一時表は,トランザクションの決着時又はSQLセッションの終了時に自動的に削除されるため,UAPによる後処理が不要になり,UAP作成の負担が軽減できます。

一時表の適用基準

データ件数が多い表の一部にだけアクセスが頻繁にあるトランザクションや,中間処理結果を一時的に保存する必要があるような複雑な処理をするバッチ業務などに一時表の使用をお勧めします。

〈この節の構成〉