2011-02-08 7 views
0

いくつかの簡単なSQL問合せがあり、いくつかの表を内部ジョインで結合しています。 のインデックスが存在し、オプティマイザで欠落しているインデックスはありません。tsql内部マージ・ジョイン

クエリは、私たちのテスト環境と他のいくつかのシステムで正常に動作します。 私たちはsqlを別のシステムに適用しており、クエリは分解されています。 自分のサーバー上のランタイム:ほとんど瞬時に。 新しいサーバーでの実行時間:約40秒。

データ量は一致します。

内部結合に「マージ」ヒントを追加すると、自分のサーバーから既知の推定ランタイムが得られます。

なぜこれらの違いがありますか?

ms-sql 2008 r2を使用しています。

+1

あなたにマージ・ジョインを与えていないサーバーでは、どのようなジョイン・タイプがあなたに与えられますか?実際の行数と推定行数の間に大きな相違がありますか? (実際の実行計画でこれを見ることができます)自動作成統計と自動更新統計がオンになっていることを確認します。 –

+0

新しいサーバーの統計情報が最新の状態になっていますか?彼らはリストアの直後ではないかもしれません – Andomar

答えて

1

「低速」システムでは、パラレル実行設定と環境が異なる場合があります。

「マージ結合」のヒントとして、ループ結合を置き換えた可能性があります。

最も確実な方法は、2つの異なるシステムで生成されたクエリプランを取得し、違いを確認することです。

関連する問題