• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一括更新の際のロールバックセグメント)

一括更新のロールバックセグメントについて

このQ&Aのポイント
  • 一括更新の際に発生するロールバックセグメントについて知りたいです。
  • AとBのテーブルがあり、Aの値でBを一括更新するSQLがある場合、ロールバックセグメントのサイズはどのようになりますか?
  • ロールバックセグメントが不足した場合、全体がロールバックされるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • msystem
  • ベストアンサー率42% (79/186)
回答No.1

更新の条件がすべて当てはまるのであれば、100万件のロールバックセグメントが必要になります。(実際は、もう少しいる) まずひとつ、このSQL文を実行しても必ずしも100万回のサブクエリが走るとはいえません。Oracleのオプティマイザがもう少しいいパスを見つけるでしょう。 それから、先ほども書いたように、条件があわなければ、Updateをかけませんので必ずしも100万件の更新をするわけではありません。 ロールバックセグメントの容量が足りなくなれば、すべてロールバックされますので、何もなかったことになります。(件数によりますが、ものすごく時間はかかると思います)

Snowman
質問者

お礼

明快なお答え,ありがとうございます。 オプティマイザがもう少しいいパスを見つけるというのはなるほどと思いました。 ロールバックセグメントの件は了解です。実際、やってみたところロールバックされてしまいました(^^;;

関連するQ&A