私は畳み込まれたMSSQL 2008のクエリを持っています、そして、ショープランはソートオペレーションの40%を持っています(数ミルの行があり、クエリはトップ15000をします)、残りのプランはインデックスシークとスキャンです。並べ替えを最適化するSQL Serverのルール?
TOP
句を削除した場合、クエリは1秒になります。しかし、私はTOP
が必要です。このSORTニーズをスマートに最適化するための経験則は何ですか?
私は畳み込まれたMSSQL 2008のクエリを持っています、そして、ショープランはソートオペレーションの40%を持っています(数ミルの行があり、クエリはトップ15000をします)、残りのプランはインデックスシークとスキャンです。並べ替えを最適化するSQL Serverのルール?
TOP
句を削除した場合、クエリは1秒になります。しかし、私はTOP
が必要です。このSORTニーズをスマートに最適化するための経験則は何ですか?
並べ替える列のすべてにインデックスを付ける必要があります。これだけでは、SQL Serverがクエリを実行している間に並べ替えを行う必要がなくなります(既にインデックスを使用して並べ替えられているため)。
唯一の欠点は、より多くのインデックスが遅いということです。
真ですが、特に 'ORDER BY'に関数でラップされたカラムが含まれている場合、インデックスの使用を保証することはできません。 –
また、複数のテーブルからフィールドをソートすると... – JNK
15K結果セット! –
ORDER BYのインクルード関数はありますか? –
の順序で機能がありません。 – Snowy