一部のサーバーでは、ハッシュ結合、group by および order by のコストが実際のコストに比べて低すぎるようです。つまり、多くの場合、インデックス レンジ スキャンを使用した実行計画は前者よりも優れていますが、実行計画ではコストが高くなります。
さらにいくつかの注意事項:
- 私はすでにoptimizer_index_cost_adjを20に設定していますが、それでも十分ではありません. 純粋な全テーブル スキャンのコストを増やしたくありません。実際、オプティマイザがコストを削減してもかまいません。
- pga_aggregate_targetが CBO コストの見積もりに影響を与えることに気付きましたが、十分な RAM があるため、このパラメーターを下げたくありません。
- 個々のクエリでオプティマイザ ヒントを使用するのではなく、設定をグローバルにしたいと考えています。
編集 1: 動的サンプリングを試してみることを考えていますが、これが全体的なパフォーマンスにどのように影響するか、つまり実行計画が変更される頻度を予測するのに十分な詳細な知識がありません。私は間違いなく非常に安定したものを好みます。実際、最大のクライアントの一部では、すべての統計をロックするポリシーがあります (これは Oracle 11g SQL Plan Management で変更されます)。