SQL ステートメントがあります (ここには投稿できません)。その実行計画を見ると、ほとんどの時間は並べ替えられており、その後にインデックス スキャンが続いていることがわかります。
ソートに費やす時間を減らすためにできることはありますか? あらゆる種類のインデックス?インデックス スキャンにかかる時間を短縮するためにできることはありますか?
SQL ステートメントがあります (ここには投稿できません)。その実行計画を見ると、ほとんどの時間は並べ替えられており、その後にインデックス スキャンが続いていることがわかります。
ソートに費やす時間を減らすためにできることはありますか? あらゆる種類のインデックス?インデックス スキャンにかかる時間を短縮するためにできることはありますか?
クラスタ化インデックス スキャンは、基本的にテーブル スキャンであり、テーブル内のすべての行が検査されます。
おそらく、このクエリのテーブルにインデックスがありません... フィルタリング/結合しているフィールドを見て、これらの列にインデックスを追加してください。
これらのインデックスは、ネストされたループ/ソート操作も防止する可能性があります。
ここで大声で疑問に思っているだけですが、クエリにランク付け機能はありますか? 並べ替えの直後にセグメント演算子が表示されているので質問します。通常、ROW_NUMBER() や RANK() などを実行している場合に表示されます。そのような演算子はすべて OVER 句で order by を必要とするため、データがまだそのメトリックで順序付けられていない場合 (つまり、データが取得されるテーブル/インデックスでそのように順序付けられていない場合)、エンジンは正しい結果を得るには、データを並べ替える必要があります。