開発を行っているサーバーが2台あり、私はDBAではありませんが、私は持っていないので、パフォーマンスの問題を理解しようとしています。ローカルではSQL Server 2008 R2がインストールされており、使用しているORMによってクエリが実行されると、結果は1秒未満で返されます。開発サーバーでSQL Server 2005を使用して同じクエリを実行すると、1分以上かかります。私は両方の実行計画を見てきた主なものは、クエリの最後の2行がorder byステートメントを持っていることです。 2005年のサーバーでは、これはコストの100%です。 2008年のサーバーでは、そのコストの0%。私は見落としているいくつかの並べ替えの設定はありますか?両方のサーバーは、ローカルコピーがバックアップからのリストアに過ぎないので、ほぼ同じデータと同じインデックス/キー/ etcを持ちます。SQL Server実行計画の質問
2005年のサーバーでは、すべてのテーブルを並べ替えて、結果(200行)を与えてくれました。どこの2008年のサーバーは、すべての結果を取得し、それらを並べ替える。 (も200の結果。)
リンク実行計画を遅くする:高速な実行計画へhttp://pastebin.com/sUCiVk8j
リンク:http://pastebin.com/EdR7zFAn
は、私は、クエリを投稿するだろうが、私は含まれての束を持っているので、それは不愉快長いですクエリを生成しているEntity Framework。
ありがとうございます。
編集:これは実行中のSQLサーバー上でタスクマネージャーを開き、CPUはこのクエリの実行中に100%になります。
編集:jsfiddle.netにXMLバージョンを追加しました。ペーストビンはサイズのために私を許可しないだろう。 XML用のCSSウィンドウを使用しました。
実際2008R2:http://jsfiddle.net/wgsv6/2/ 実2005:http://jsfiddle.net/wgsv6/3/
実行計画を投稿する – JNK
200行をソートしてもこの時間差は発生しません。したがって、見積もりコストがかかりそうです。たぶん、2005年のサーバーで統計を更新する必要があるかもしれません。両方のバージョンの計画に表示されるコストは、これらの統計に基づく見積もりに過ぎません。計画の推定行と実際の行との間に相違があるか? –
は、これらの実績ある、または推定されたエグゼクティブプランですか? – JNK