マシンAにSQLServer2008 R2で構成された「サーバー」があります。同じLANに、SQLServerがインストールされていない同一のハードウェアを備えたマシンであるマシンBがあります。
データベースからいくつかのレコードを要求し、それらを適切なCLRオブジェクトにマップする一連の単体テストがあります。この単体テストをマシンAからSQLServerを使用して実行すると、テストは5ミリ秒で実行されます。
テストのコードをマシンbにコピーして実行すると、テストにかかる時間は合計で約50ミリ秒になります。これは、ネットワークのオーバーヘッドのみが原因である場合は大幅に増加します。
実行されたクエリは大量のデータを送信せず(列にblob / xmlデータはありません)、合計データは約数KBです。データはを使用して読み取られますIDataReader
。一度開かれる単一の接続を使用し、データベースに対して約24のクエリを実行するために使用されます。
それが実際に実行を遅くしているネットワークオーバーヘッドであるかどうかをテストするために試すことができるヒント/コツはありますか?SQLServerで何かが正しく構成されていないように感じます。