- ベストアンサー
データ削除、追加によるロールバックセグメントについて
- テスト環境で行われたテーブルの200万件の削除と100万件の追加により、VBアプリが遅くなりました。この遅さの原因として、ロールバックセグメント(UNDOセグメント)や一時的にデータが蓄積された可能性が考えられます。
- 削除や追加が行われた場合、データはどのオブジェクトに蓄積されるのか疑問です。また、データの削除や追加が原因でアプリが遅くなるのかも不明です。
- 対応として、DBサーバのOSの再起動を行いましたが、まだ遅さが改善されませんでした。しかし、DBの再起動を行ったら遅さが改善されました。原因についての基礎知識が不足しており、アドバイスをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1 です 遅延ブロッククリーンアウトについて、わかりやすい説明と解消方法があります。 http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?communityid=otn-489965&bbsid=1&no=28716&view=9 実際にはUNDOがいっぱいになるわけではなく、 データブロックのITLという部分とUNDOセグメントヘッダという管理領域で 実際のデータブロックへのコミット作業を先送りさせています。これでコミット時の応答が速くなります。 おら! オラ! Oracle - どっぷり検証生活 UNDOやREDOについてもあります。一通り目を通しておくとOracleの理解度が高まります。 http://www.insight-tec.com/mailmagazine/ora3/mail_back_index.html
その他の回答 (2)
- whiteline507
- ベストアンサー率63% (47/74)
VBアプリがどこで動いているのかが分からないのですがDBサーバ上で動いているのであれば 「OSの再起動を行ったのですがまだ遅く、再起動後にDBの再起動を行ったらなぜか遅かったのが改善されました。 」ということは外的要因しか考えられません(他の誰かがたまたま重たい処理を流していた) 当然DBサーバのOSの再起動はDBの再起動が含まれますので...
- MZ-80B
- ベストアンサー率56% (46/81)
再起動によって改善されたのではなく、 色々操作している間に遅延ブロッククリーンアウトが発生して UNDOセグメントヘッダのコミットフラグがデータセグメントに反映されたためでしょうね。
補足
回答ありがとうございます。 すいません。せっかく回答頂いたのですが、よく理解できてません。UNDOセグメントがいっぱいになっているのを確認する方法などはありますでしょうか? また、上記データセグメントに反映されたというのは何か確認方法があるのでしょうか? 経験が浅いもので理解できずに申し訳ありません。 よろしくお願いいたします。
お礼
回答ありがとうございます。 非常にわかりやすい説明とリンクでした。 あとは自分の理解度の問題のようです。 ありがとうございました。