- ベストアンサー
コストベースについて
データ量を基に最適な実行計画を立てることができるとありますが、具体的に実行計画を立てる場合、コストベースの場合、どのようなメリットがあるのでしょうか? また、今回の現場ではデータ量は各テーブル100万~800万くらいですが、コストベースに切り替えただけでは特に速くなったりはしないですよね? どなたかアドバイスお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、Oracle 8i以降で追加された検索パスはコストベースでしか利用できません。ハッシュ結合、スター結合、INリストイテレータなどが該当します。あと、Oracleが勝手に適切なSQL文に書き換えてから実行してくれるので、最適なSQL文を書くための知識がそれほどなくても高速に検索できます。 欠点としては定期的なANALYZEが行われていないととんでもないパスを選択する可能性がある(OUTLINEを作成しない限り、実行計画が固定化されない)、新機能を利用する分だけ不具合が多いと言ったところでしょうか。
その他の回答 (1)
- sapporo30
- ベストアンサー率33% (905/2715)
勝手にコスト計算を行って、 実行計画を決めてくれる。 INDEXを使用した検索だけるのであれば、 早くなることはほとんどないでしょう。 逆に、統計情報にばらつきがあったり 統計情報が古かったら、コスト計算が 不正確で、変なアクセスパスを採用 するので、遅くなります。 INDEXがないような項目の検索で 検索項目が決まっていないような 検索であれば、あるていど有効に機能します。 ただ、10g からは、CBOだけになるので、 コストベースオプティマイザが必須になります。
補足
回答ありがとうございます。 ということは将来的にもコストベースで運用していたほうがよいですね。 そのためには統計情報を最新にする必要があるのでしょうが、統計情報を更新するためにはどのような注意点が必要でしょうか? 一部でもよいのでアドバイスお願いします。
お礼
ANALYZEを行わないといけないのですね。 現場ではおそらく上記のような考慮は入っていないと思います。 ありがとうございました。 参考にします。