対策する資格
Java Silver ・ 近日ORACLE Silver ・ 近日
Gold 保有者 監修1Z0-083 対応
領域管理(ALTER TABLE … MOVE ONLINE)難易度 標準無料

24時間稼働の OLTP で、ヒープ表 hr.orders(B-Tree 索引が複数ある)を別の表領域 data_new無停止で移したい。次の2案を検討している。

-- 案1
SQL> ALTER TABLE hr.orders MOVE TABLESPACE data_new;

-- 案2
SQL> ALTER TABLE hr.orders MOVE ONLINE TABLESPACE data_new;

2案の違いとして最も適切なものを選べ。(単一選択)

  1. A案1・案2 とも DML を許可したまま移動でき、索引も自動で保守されるので動作は同じ
  2. B案1(MOVE)は移動中、表に排他ロックがかかり DML がブロックされ、移動後は索引が UNUSABLE になるため索引の再構築が必要。案2(MOVE ONLINE)は移動中もDML を許可し、索引も自動的に保守される(再構築不要)
  3. C案2(MOVE ONLINE)は索引を UNUSABLE にする点は案1 と同じで、違いは移動中に SELECT を許可するかどうかだけである
  4. DMOVE ONLINE は索引専用の構文で、表(ヒープ表)には使えず ORA-00922 になる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BGold監修

解説

ヒープ表の移動には2つのモードがある。

  • オフライン移動 ALTER TABLE ... MOVE(案1): 移動中は表に排他ロックがかかり、DML がブロックされる。さらに移動で rowid が変わるため、移動後は表の索引が UNUSABLE になり、索引を再構築(ALTER INDEX ... REBUILDするか UPDATE INDEXES 句を併用する必要がある。
  • オンライン移動 ALTER TABLE ... MOVE ONLINE(案2): 移動中もDML(INSERT/UPDATE/DELETE)を許可し、索引も自動的に保守される(移動後に UNUSABLE にならず、別途再構築は不要)。24時間稼働の無停止移動にはこちらが適する。

本問は「無停止で移したい」ので案2(MOVE ONLINE)が適切。

各誤答が違う理由
  • A案1 は DML をブロックし索引も UNUSABLE になる。両案が同じ動作というのは誤り。
  • CMOVE ONLINE の眼目は「DML 許可+索引の自動保守」。索引が UNUSABLE になる点が案1 と同じ、という説明は誤り(ONLINE は索引を使用可能なまま保守する)。
  • DMOVE ONLINEヒープ表に対して使える(12.2 以降)。索引専用構文という説明は誤り。
ひっかけ:ONLINE = 読めるだけ(SELECT 可)」という浅い理解(C)。MOVE ONLINE の本質はDML 継続+索引の自動保守(再構築不要)。 オフライン MOVE の後に索引が UNUSABLE になることを忘れて再構築を怠ると、その索引が使われずに性能劣化する点も実務の罠。
Gold 保有者による書き下ろし解説・実機で検証済
この分野をもっと解いて、得点源に
領域管理 を含む全問を分野別に演習できます(無料)。
演習する →