0

このクエリ

ジオエリアから最大(ID)を選択

本番サーバー (16Gb RAM) では非常に高速です。1秒以内に実行されます。

しかし、テストサーバー (3Gb RAM) では非常に遅いです。10 分以上かかります (まだ進行中です!)。

データベースは同じです。SQL Server のバージョンは同じです。

テーブルには 200 万行あります。テストサーバーで遅いのはなぜですか? 単なるクラスターインデックススキャンだと思いました。

アップデート

SQL の再起動は役に立ちませんでした。本番DBをテストサーバーにコピーしたところ、問題は解決しました。

4

2 に答える 2

2

可能性があります (に限定されません)

  • 純粋にハードウェア関連 (実稼働中の RAID、テスト中のリモート SAN ソリューション)
  • 同じハードディスク/RAM/CPU/テーブルで競合するアクティビティ、デッドロックの可能性、コミットされていないトランザクションがまだ開いている可能性があります
  • インデックスがありません (そう言ったのは知っていますが、本当に同じデータベースですか?)
于 2013-10-16T13:17:29.173 に答える
2

10分経ってもまだ動いてる?
まだ実行中ですか?
ID がクラスター化インデックスで、そのテーブルに 200 万行ある場合は、何か問題があります。
1秒から10秒の差は大きい。
1 秒から 10 分を超える時間は、ハードウェアまたはインデックスまたは統計情報を超えています。

そのテーブルをロックしている可能性があります。
試す:

SELECT MAX(ID) FROM GeoArea with (nolock) 

それでも解決しない場合は、SQL を再起動します。

于 2013-10-16T13:36:30.193 に答える