プロが教える店舗&オフィスのセキュリティ対策術

今回急遽Oracle(8.1.6です。)の運用保守を担当する事になったものです。
ここ1ヶ月あたり自分なりに必死でいろいろ情報を
集めているつもりなのですがどうしても分からない事があります。
アクセスパスを選択するにあたり、
CBO,RBOの2種類があると理解していますが、
実際にその設定はどこに定義されているのでしょう?
現在どちらが採用されてアクセスパスが導かれているか
を調べるにはどうすればよいのでしょうか?
実行されるSQLが使用しているテーブルや、IndexのANALYZEが
行われていたら自動的にCBOになるのでしょうか?
それともヒント文を記載しなければCBOになるのでしょうか?
どなたか教えてください。

A 回答 (4件)

表面的な事しか知らないのですが・・・



初期化パラメータoptimizer_modeがRULEであれば、
常にルールベースです。
optimizer_modeがCHOOSEで、かつ、統計情報があれば、
コストベースの最適化が行われますが、
統計情報がない場合はルールベースになります。

なので、optimizer_modeがCHOOSEならば、
「analyzeが行われていたら~」という解釈で良いと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
初期化パラメータファイル(init.ora)を確認したのですが、
optimizer_modeのパラメータが存在しないのです。
この場合はどちらで動作するのでしょうか?
お分かりでしたら教えてください。

お礼日時:2007/01/22 22:32

テーブルごとです。


一度もanalyzeしていないテーブルや、統計情報を削除したテーブルは
(CBOできないので)RBOになります。
    • good
    • 0
この回答へのお礼

ありがとうございました。助かりました。

お礼日時:2007/01/23 11:47

オプティマイザモードのデフォルトは、CHOOSEです。

    • good
    • 0
この回答へのお礼

ありがとうございました。よくわかりました。
それでは以下の場合はどうなのでしょうか?
実行するSQLに関係するテーブルにはANALYZEをしていないのですが、他の関係ないテーブルに対しANALYZEをしている場合もCBOとなるのでしょうか?
お分かりでしたら教えてください。

お礼日時:2007/01/23 09:53

初期化パラメータで決まります。

(オプティマイザモード)
オプティマイザモードでchooseが設定されておいる場合に、1つでも統計情報が存在すれば、CBOになります。
全く統計情報が存在しないシステムの場合、chooseモードでも、RBOとなります。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
さっそく初期化パラメータ(init.ora)を確認したとこと
なぜかoptimizer_modeのパラメータがみあたりません。
この場合どちらで動作するのでしょうか?
ご存知でしたら教えてください。

お礼日時:2007/01/22 22:34

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