2011-06-27 19 views
0

私たちは、1,000万行以上のテーブルの各行に対して小さな更新を行うストアドプロシージャを実行しようとしています(それは想像できるように大きなデータベースです)。私たちはSQL Server 2005を実行しています。Sql Server 2005スピードの問題

私が作成したストアドプロシージャは、奇妙な動作をしています。起動すると、非常にゆっくりと動きます。CPUリソースはごくわずかです。それから突然、1時間か2時間、CPUリソースの99%を占めています。その時点で、それは非常に迅速に動きます(これは私たちが望むものです)。

突然、それは再び減速し、非常にゆっくりと働いています!

データベースを更新するために設計された1つのストアドプロシージャであるため、タスクを完了できるように高速に実行する必要があります(つまり、すべてのリソースを必要とします)。

当社のサーバーには、次のリソースを持っている:インテル(R)Xeon(R)CPUのE5520 GHzの2.27 GHzの2.27 @、ラム

誰かが、私はSQL Serverがこれをやっている理由を理解する助けてもらえますし、どのように18ギガバイト私のストアドプロシージャを修正してすぐに実行し、常に利用可能なリソースを使用していますか?

+3

プロシージャのサンプルコードを教えてください。 – niktrs

答えて

0

SPがゆっくりと動作しているときに何が起きているのかを確認することから始めます。ディスクのボトルネックか、おそらくネットワーク関連ですか?

あなたはちょうどそれを識別するために、パフォーマンスモニタを使用してブレントOzarの偉大なガイドに従うことができます:http://www.brentozar.com/archive/2006/12/dba-101-using-perfmon-for-sql-performance-tuning/

ボトルネックは、それがコアの問題を識別するために非常に簡単になったのである場所がわからたら。 SPは他のテーブルに参加していますか?結合されたデータの分布がありませんが、特定の行で他のディスクと比較してより大きな量のディスクIOを引き起こしますか?