AI作成・独立検証済(有資格者監修なし)1Z0-083 対応
UNDO(一時UNDO TEMP_UNDO_ENABLED)難易度 高無料

グローバル一時表(GTT)への DML が多く、その UNDO が通常の UNDO 表領域を消費し、結果として REDO も増えている。次を設定した。

SQL> ALTER SESSION SET TEMP_UNDO_ENABLED = TRUE;

一時 UNDO(temporary undo)の効果として最も適切なものを選べ。(単一選択)

  1. Aグローバル一時表(GTT)への DML の UNDO を通常の UNDO 表領域ではなく一時表領域(TEMP)に格納する。これにより通常 UNDO とそれに伴う REDO の生成が抑えられる(対象は一時オブジェクトの UNDO のみ)
  2. Bすべての表(永続表を含む)について UNDO の生成を停止し、UNDO 表領域を完全に不要にする
  3. CREDO の生成を全面的に停止するため、インスタンス障害からのクラッシュリカバリができなくなる
  4. D一時表領域を UNDO 表領域として恒久的に転用し、以後は永続表の UNDO もすべて TEMP に書かれる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

一時 UNDO(temporary undo)は、グローバル一時表(GTT)に対する DML の UNDOを、通常の UNDO 表領域ではなく一時表領域(TEMP)に格納する機能である (TEMP_UNDO_ENABLED=TRUE で有効化)。

効果:

  • 通常 UNDO 表領域の消費が減り、その分に対応する REDO 生成も減る(一時 UNDO 自体はロギングされない)。
  • 一時オブジェクトの UNDO が REDO を生まないため、Active Data Guard のリードオンリー・スタンバイ上でも GTT への DML が可能になる、といった利点にもつながる。

あくまで対象は一時オブジェクト(GTT 等)の UNDO であり、通常の永続表の UNDO や REDO を無くすものではない(永続表の変更は引き続き通常 UNDO+REDO で保護される)。

各誤答が違う理由
  • B対象は一時オブジェクト(GTT)の UNDO だけ。永続表の UNDO は引き続き必要で、UNDO 表領域が不要になるわけではない。
  • C永続表の変更に対する REDO は生成され続けるので、クラッシュリカバリは可能。REDO を全面停止する機能ではない。
  • D一時 UNDO が TEMP を使うのは一時オブジェクトの UNDO に限る。永続表の UNDO まで TEMP に書かれるわけではない。
ひっかけ: 「一時 UNDO を有効化すれば UNDO も REDO も全部要らなくなる」という過大解釈。対象は一時オブジェクト(GTT)の UNDO のみ。 永続表の UNDO/REDO はこれまで通り必要(さもなければ回復不能になる)。
コマンド例と想定される挙動(未実行)
ALTER SESSION SET TEMP_UNDO_ENABLED = TRUE; 後、GTT の UNDO は一時表領域へ格納される。
一時 UNDO は REDO ログに記録されないため、UNDO 表領域の消費と REDO の生成量がともに減る(その分 一時表領域の使用量は増える)。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
この分野をもっと解いて、得点源に
UNDO を含む問題を分野別に演習できます。
演習する →