3

やや奇妙な問題...マシンの再起動後に初めて .NET アプリを起動すると、SQL Server クエリが非常に遅くなります...デバッガを一時停止すると、クエリからの応答の取得で停止していることに気付きます. これは、リモート SQL サーバー (2008) に接続している場合にのみ発生します...ローカル マシン上のサーバーに接続する場合は問題ありません。また、アプリを再起動すると、リモート SQL サーバーから離れていても高速に動作し、その後の実行も問題ありません。唯一の問題は、マシンの再起動後に初めてリモート SQL サーバーに接続するときです。さらに、リモート SQL サーバーにも接続するサード パーティ製アプリ (.NET も) で、これとまったく同じ動作をすることに気付きました。

別の情報... これは、マシンを XP から Win7 (64 ビット) にアップグレードしてから発生し始めたばかりです。また、Win7 にアップグレードした私のチームの他の開発者も同じ動作を見ています (私たちが開発しているアプリとサード パーティの .NET アプリの両方で)。

編集:コメンターによる提案により、https://serverfault.com/questions/100141/sql-server-queries-are-really-slow-only-on-first-runにもコピーされました

4

2 に答える 2

7

ほとんどの場合、キャッシュ効果を楽しんでいます。最初にクエリを実行すると、SQLは実行プランを生成し、それをキャッシュします。クエリを再度実行すると、実行プランが記憶され、場合によっては速度が向上します。したがって、クエリをテストする場合は、キャッシュをクリアする必要があります。以下は私がしていることです。

Devx Webサイトからの引用(DEVxヒント

DBCC DROPCLEANBUFFERSを実行します。これにより、キャッシュからすべてのデータがクリアされます。次に、DBCC FREEPROCCACHEを実行します。これにより、ストアード・プロシージャーのキャッシュがクリアされます。

HTH

于 2010-01-06T17:33:55.430 に答える
1

SQL Server クライアントの構成設定を確認してください...おそらく TCP/IP がリストの最初にありません。

于 2010-01-06T17:25:57.747 に答える