2011-07-07 7 views
0

私は畳み込まれたMSSQL 2008のクエリを持っています、そして、ショープランはソートオペレーションの40%を持っています(数ミルの行があり、クエリはトップ15000をします)、残りのプランはインデックスシークとスキャンです。並べ替えを最適化するSQL Serverのルール?

TOP句を削除した場合、クエリは1秒になります。しかし、私はTOPが必要です。このSORTニーズをスマートに最適化するための経験則は何ですか?

+0

15K結果セット! –

+0

ORDER BYのインクルード関数はありますか? –

+0

の順序で機能がありません。 – Snowy

答えて

0

並べ替える列のすべてにインデックスを付ける必要があります。これだけでは、SQL Serverがクエリを実行している間に並べ替えを行う必要がなくなります(既にインデックスを使用して並べ替えられているため)。

唯一の欠点は、より多くのインデックスが遅いということです。

+0

真ですが、特に 'ORDER BY'に関数でラップされたカラムが含まれている場合、インデックスの使用を保証することはできません。 –

+0

また、複数のテーブルからフィールドをソートすると... – JNK

関連する問題