2

ローカル データベース呼び出しを行う Web アプリでページを読み込むには、通常、特定のクエリに対して 10 ~ 15 秒かかります。まったく同じページをロードすると、10 倍から 15 倍の時間がかかることがあります。追加のページ ロード時間は、SQL クエリの実行時間の増加に遡ることができます。私はSQLに関しては初心者なので、CPUとメモリをチェックする以外に(どちらも50%を超えたことはありません)、どこから始めればよいかわかりません。

同様の問題/解決策を検索してみましたが、通常、メモリ不足の人への参照、または常に実行速度が遅いストアド プロシージャの最適化に基づく指示しか見つかりませんでした。これらのどちらも私の問題に対処していないようです。まったく同じクエリを実行すると、別の時間に実行した場合よりも 10 倍から 15 倍の時間がかかることがあります。残念ながら、コンピューターを再起動するなどの即時の回避策を見つけることができませんでした。

これは、過去 2 週間以内に 3 回発生しました。ある瞬間は問題なく動作し、次の瞬間は 10 倍の時間がかかります。最終的には、通常の状態に戻ります - 電源を切らずに一晩/週末にコンピュータを放置し、戻って再試行したときに高速なロード時間に戻りました. どちらの場合も、アプリケーションを終了したり、システムの状態を明示的に変更したりしませんでした。

それが重要な場合、私は Windows 8 で SQL Server 2012 を実行しています。なぜこれが起こっているのか途方に暮れているので、ヒントがあれば大歓迎です。

ありがとう、デビッド

編集:私の元同僚からの回答:

このクエリの実行: dbcc freeproccache

それを修正しました。ここで説明: http://msdn.microsoft.com/en-us/library/ms174283.aspx

彼の簡単な説明は、「SQL は、proc が最初に実行されたときにクエリ プランを把握します。最初の実行が通常とは異なる場合、不適切なプランが保存される可能性があります。」

回答してくれたすべての人に感謝します。

4

2 に答える 2

1

私は決してSQLサーバーの専門家ではありませんが、このような状況をいくつかデバッグする必要がありました.

プロファイラーを使用することが、私にとって最も効果的でした。これは私が始めたリンクです。プロファイラーでデータベースを監視する方法について説明しています。

http://msdn.microsoft.com/en-us/library/aa173918(v=sql.80).aspx

私の場合、スローダウンの原因は、読み取り、サニタイズ、およびデータの db への書き戻しを試行するタイトなループで db を叩いた 1 つの C# クリーンアップ プロセスであり、他のプロセスに多くの余地を与えませんでした。実行中の 2 分間の実行に対して。

プロファイラーはこれをすぐに検出しました

于 2013-05-28T19:06:13.493 に答える
1

私の元同僚が答えた:

このクエリの実行: dbcc freeproccache

それを修正しました。ここで説明: http://msdn.microsoft.com/en-us/library/ms174283.aspx

彼の簡単な説明は、「SQL は、proc が最初に実行されたときにクエリ プランを把握します。最初の実行が通常とは異なる場合、不適切なプランが保存される可能性があります。」

回答してくれたすべての人に感謝します。

于 2013-08-09T21:26:27.983 に答える