Hitachi

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


11.22.1 一時表のデータ有効期間

実体化された一時表のデータ有効期間(実体が存在する期間)は,その一時表がトランザクション固有一時表か,SQLセッション固有一時表かによって異なります。一時表のデータ有効期間の開始及び終了タイミングを次の表に,データ有効期間とある時点で保持されているデータの例を次の図に示します。

表11‒27 一時表のデータ有効期間の開始と終了

一時表の種類

開始となるタイミング

終了となるタイミング

トランザクション固有一時表

トランザクション中で,一時表に対して最初にINSERT文が実行されたとき

トランザクションが決着したとき

SQLセッション固有一時表

SQLセッション中で,一時表に対して最初にINSERT文が実行されたとき

  • SQLセッションが終了したとき

  • 一時表を実体化したバックエンドサーバが終了したとき

  • 一時表を実体化したバックエンドサーバがあるユニットが終了したとき

  • 一時表を実体化したバックエンドサーバ,又はそのバックエンドサーバがあるユニットに対して系切り替えが発生したとき

図11‒47 一時表のデータ有効期間と,ある時点で保持されているデータの例(その1)

[図データ]

〔説明〕

時刻Tの時点で,SQLセッション1及び2が使用する一時表TMP1及びTMP2に保持されているデータを次に示します。

SQLセッション

一時表

保持されているデータ

SQLセッション1

TMP1

4.で挿入したデータ。

TMP2

1.及び3.で挿入したデータ。

SQLセッション2

TMP1

この時点では,データはありません。

TMP2

1.及び3.で挿入したデータ。

図11‒48 一時表のデータ有効期間と,ある時点で保持されているデータの例(その2)

[図データ]

〔説明〕

時刻T1及びT2の時点で,SQLセッション1及び2が使用する一時表TMP2に保持されているデータを次に示します。

時刻

SQLセッション

保持されているデータ

T1

SQLセッション1

2.で表のデータを削除しているため,この時点では,データはありません。ただし,TMP2の実体は存在します。

SQLセッション2

1.で挿入したデータ。

T2

SQLセッション1

3.及び4.で挿入したデータ。

SQLセッション2

この時点では,データはありません。TMP2を実体化する前の同期点までロールバックしているため,TMP2の実体は存在しません。

注意事項
  • 一時表のデータ有効期間外に,一時表に対して検索,更新,及び削除を実行しても,データがない表に対してSQLを実行したときと同じ結果になります。

  • HiRDB/パラレルサーバで,SQLセッション固有一時表を実体化したバックエンドサーバ又はそのバックエンドサーバがあるユニットが異常終了したり,系切り替えが発生したりすると,データ有効期間が終了します。そのため,SQLセッションが終了するまで,該当する一時表に対するデータ操作はSQLエラーになります。