0

SQL Server 2008 R2 を使用しており、次のような単純なクエリがあります。

Select COLA 
from tableA 
where not exists (select 1 
                  from tableB
                  where COLA = tableB.colb)
and tablea.colc = 2

同じデータ セット (バックアップから復元) を持つ 2 つの同一のサーバーがあります。そのうちの 1 つでクエリが返されるのは 4 秒で、もう 1 つのクエリ (実稼働サーバー) では、5 分間実行してから強制終了しました。見積もりプランは、両方のサーバーで同じです。パフォーマンスの違いを見つけるために、他にどこで何を見ることができますか。クエリを記述するためのより良い方法があることは知っていますが、これは変更すべきではない購入した製品のクエリです。

4

4 に答える 4

0

これは明らかかもしれませんが、ハードウェアの違いは何ですか?また、テーブルと解析する必要のあるデータセットのサイズは同じですか?

これらのインスタンスでどのような種類のインデックスを使用していますか。本番インスタンスはVM上で実行されますか?

于 2012-05-24T15:25:26.823 に答える
0

統計が古くなっているか、より多くのユーザーまたはより多くの自動化されたジョブが実行されているために、prod サーバーでブロックが発生している可能性があります。

于 2012-05-24T14:49:02.607 に答える
0

1 つのボックスが物理的で、もう 1 つのボックスが仮想的であると述べたので、そこに問題があるに違いありません。仮想システムは、ボックスの反対側 (物理) とリソースを共有する必要があります。また、物理ボックスは仮想環境で実行されていないため、パフォーマンスが調整される可能性があります。

ケース: デナリには、各インスタンスのプロセッサ使用量を制限できる「プロセッサ アフィニティ マスキング」があります。

いずれにせよ、それは仮想環境と物理環境によるものだと確信しています。

お役に立てれば!

于 2012-05-24T16:59:29.470 に答える
0

試しましたSQL Profilerか?

を使用している間は、以下に示すように [プロパティ]でSQL Profilerを選択することを忘れないでください。Database NameTrace

データベース名 ここをクリックして、データベース名の設定を確認します

データベース テーブル ここをクリックして、データベース テーブルの設定を確認します

于 2012-05-24T15:15:48.967 に答える