アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えて下さい。
oracleのロールバックセグメントって標準では
RB1~RB5ですよね。
また、RB1からRB5までの振り分けっていうのは
オラクルが自動的にしてくれてると認識してるのですが・・・
さておき、あるセグメント(例えばRB3)などが
集中的に使用されていて競合が発生し、レスポンス劣化に
繋がって困っています。私自身オラクル初心者なのですが
何か解決方法ってあるのでしょうか?
ちなみにオラクルは7.3.4で言語はVB5で開発しています。

A 回答 (3件)

RBSへのトランザクションの割り当ては、アクティブなトランザクションが一番すくないRBSにトランザクションが割り当てられます。

アクティブトランザクションが同じ場合は、最後に使ったのが一番古いものから割り当てられます。大きなRBSをバッチなどに使いたいときには、日ごろはOFFLINEにして、バッチ直前にONLINE、SET TRANSACTIONでRBSを指定→バッチ実行 →OFFLINE
になると思います
    • good
    • 0

こんにちわ


ロールバックセグメントは作成されていても、
オンラインになっていないと使用されませんので気をつけてください。
(まず、オンラインになっているとは思いますが。)

セッション側でロールバックセグメントを明示的に指定していなければ、
特定のロールバックセグメントだけを使うって事には基本的にならないはず。
(※何か要因があって、そのロールバックに集中してるかもしれませんが)

基本対処として、
DBサーバーに余裕があるなら、オンラインの
全てのロールバックセグメントの拡張をお勧めします。

通常の処理では問題ないが、ある特定の処理のときだけ
大量のロールバックセグメントを使用するという場合であれば、
一つのロールバックセグメントの領域を大きくし、
対象の処理だけを、No1の方のコマンドを使用して、
ロールバックセグメントを明示的に指定するという手もあります。

どちらにしろ、一度現在のロールバックセグメントの領域が、
適正かどうか見てみてはどうでしょうか?
    • good
    • 0
この回答へのお礼

やはり領域に問題があるんでしょうね。
ロールバックセグメントの領域はそれぞれ(RB1~RB5)
初期1M、拡張サイズ1Mにしており最大値も無制限に
しているのですが・・・
サイズの拡張とロールバック領域の増設?(RB6以降もオンラインに
してみる)などの方法をとってみます。
どうもありがとうございました。

お礼日時:2002/08/28 17:00

oo4oのExecuteSQLメソッドならSQL*Plusのコマンドも使えるようなので



set transaction use rollback segment RB1;

と先に指定してやればいいような。Oracle7ではどうか確認できません。
参考にならなかったらゴメンナサイ。
    • good
    • 0
この回答へのお礼

ロールバックセグメントを固定にしたいわけではないので
この方法ではできないですよね。
ただ、別の機会があればこんな方法があったのは
初めて知りましたので参考にさせて頂きます。
ありがとうございました。

お礼日時:2002/08/28 16:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!