2011-09-12 20 views
2

開発を行っているサーバーが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/

+4

実行計画を投稿する – JNK

+0

200行をソートしてもこの時間差は発生しません。したがって、見積もりコストがかかりそうです。たぶん、2005年のサーバーで統計を更新する必要があるかもしれません。両方のバージョンの計画に表示されるコストは、これらの統計に基づく見積もりに過ぎません。計画の推定行と実際の行との間に相違があるか? –

+0

は、これらの実績ある、または推定されたエグゼクティブプランですか? – JNK

答えて

0

クエリを見ずに伝えるのは難しいが、それはあなたが遅いサーバー上のINDEXが欠落している可能ですか?

+0

これは可能ですが、OPは "同じインデックス/キーなど"と言いました...私はそれが3つのうちの1つであると推測しています - 期限切れの統計、パラメータスニッフィング、 (上記のいずれかに起因する可能性がある)劣悪なオペレータの選択になる。しかし、推測の前に実際の計画を見るのはいいでしょう。 –

+0

ああ、なんとなくそれを逃した、ありがとう。その場合は、あなたがリストアップしたものの1つがおそらくそれです。 – JohnD

0

統計情報は、devサーバーで古い可能性があります。

+0

私は質問した直後に「EXEC sp_updatestats」を数時間前に実行しました。結果は変わらなかった。 –

関連する問題