1

私はインデックス作成とクラスタリングによってSQLクエリの基本的な最適化を行ってきましたが、おそらく奇妙な質問に出くわしました。私のクエリのほとんどは、数百から数千の範囲のコストがあり、それらのインデックスを追加して、コストを下げました。

ただし、私のクエリの中には、すでに非常に低コストで、通常は1桁のものもあります。これらを忘れてもいいですか?これらのクエリを最適化する価値はまだありますか、それとも努力を払うべきではありませんか?

基本的に、クエリをさらに最適化する必要があるかどうかを判断するために使用できる一般的な範囲またはメトリックがあるかどうかを知りたいです。ケースバイケースでこれを決定する必要がある場合は、最適化するクエリを決定する際に使用するガイドラインがあると便利です。

4

2 に答える 2

2

簡単な答えは、低コストのクエリが重要であるということです。

トリッキーな部分は、低い推定コストが低い実行コストを意味しない可能性があることです。同じことが高コストのクエリにも当てはまります。

AWR または Statspack レポートを見て、最も重要なクエリが何であるかを確認し、独自の常識を適用して、実行計画がクエリの目的に最適であるかどうかを判断します。

于 2012-11-08T19:51:16.453 に答える
1

厳密なガイドラインはありません。クエリの継続時間と実行回数に関する統計を取得することをお勧めします。また、クエリの重要度にも依存します(リアルタイムデータ用か、単一のレポートの実行用か)。

クエリに10秒かかるが、1日に1回実行される場合は、クエリを最適化する必要がない場合があります。
クエリに1秒かかるが、1日に10000回実行される場合は、クエリを最適化する必要があります。

于 2012-11-08T19:49:39.350 に答える