電子書籍の厳選無料作品が豊富!

データ量を基に最適な実行計画を立てることができるとありますが、具体的に実行計画を立てる場合、コストベースの場合、どのようなメリットがあるのでしょうか?
また、今回の現場ではデータ量は各テーブル100万~800万くらいですが、コストベースに切り替えただけでは特に速くなったりはしないですよね?
どなたかアドバイスお願いします。

A 回答 (2件)

まず、Oracle 8i以降で追加された検索パスはコストベースでしか利用できません。

ハッシュ結合、スター結合、INリストイテレータなどが該当します。あと、Oracleが勝手に適切なSQL文に書き換えてから実行してくれるので、最適なSQL文を書くための知識がそれほどなくても高速に検索できます。

欠点としては定期的なANALYZEが行われていないととんでもないパスを選択する可能性がある(OUTLINEを作成しない限り、実行計画が固定化されない)、新機能を利用する分だけ不具合が多いと言ったところでしょうか。
    • good
    • 0
この回答へのお礼

ANALYZEを行わないといけないのですね。
現場ではおそらく上記のような考慮は入っていないと思います。
ありがとうございました。
参考にします。

お礼日時:2005/07/05 19:10

勝手にコスト計算を行って、


実行計画を決めてくれる。

INDEXを使用した検索だけるのであれば、
早くなることはほとんどないでしょう。

逆に、統計情報にばらつきがあったり
統計情報が古かったら、コスト計算が
不正確で、変なアクセスパスを採用
するので、遅くなります。

INDEXがないような項目の検索で
検索項目が決まっていないような
検索であれば、あるていど有効に機能します。

ただ、10g からは、CBOだけになるので、
コストベースオプティマイザが必須になります。

この回答への補足

回答ありがとうございます。
ということは将来的にもコストベースで運用していたほうがよいですね。
そのためには統計情報を最新にする必要があるのでしょうが、統計情報を更新するためにはどのような注意点が必要でしょうか?
一部でもよいのでアドバイスお願いします。

補足日時:2005/07/03 11:08
    • good
    • 0

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

関連するカテゴリからQ&Aを探す