0

mygeneration doodad オブジェクトで興味深い問題が発生しています。doodad ストアド プロシージャを使用して、ファイルから SQL Server データベースに読み込む約 25K レコードを入力しています。5つのテーブルを埋める必要があります。doodads を呼び出す C# プログラムを実行するたびに、最初の 8K レコードが 1 ~ 2 分以内に入力されるのに対し、残りの 16K レコードには数時間かかることがわかりました。それは私を夢中にさせていますが、抜け道がわかりません。誰でも助けることができますか?

ありがとう

4

1 に答える 1

0

SQL Server クライアント ツールにアクセスできますか? その場合、SQL プロファイラーを実行すると、SQL Server に対して実行されているステートメントとその頻度を確認できます。ここから、サーバーに対するスループットを監視できます。また、リクエスト自体の速度が低下しているか (終了と開始の間の時間が増加している)、または単に実行に時間がかかっているか (開始と開始の間の時間が増加) を確認できます。終了が増加しています)。

また、最初の 8K レコードはかなり高速で、残り (17K 程度) は非常に遅いとおっしゃっています。時間の経過とともにパフォーマンスが低下しますか (各 1K はその前の 1K よりも遅くなります)、またはパフォーマンスが低下してから安定しますか? パフォーマンスが着実に低下する場合は、メモリ リークまたはデータ レイアウトの問題が発生している可能性があります。プログラムを複数回実行したり、テーブルに既にデータがある場合はどうなりますか? テーブルに他のデータを入れてから挿入を実行しても同じパフォーマンス状況が得られる場合は、アプリケーションを調べます。データを事前に入力するとすぐにパフォーマンスが許容できないレベルに低下する場合は、データベースに何らかのインデックス作成が必要か、ストレージに問題がある可能性があります。

于 2013-03-24T02:15:46.510 に答える