0

サーバー「A」と呼ばれる1つのサーバー内のSQLServerデータベースで動作するasp.netWebアプリケーションがあります。MANネットワークでのアプリケーション速度は良好です

サーバー'A'のデータベースを使用する別のサーバー(サーバー'B')にWebアプリケーションを公開します。

サーバー「B」からアプリケーションを呼び出すときの速度は非常に遅いです。

ネットワークに問題はなく、サーバー「B」からサーバー「A」アプリケーションを呼び出すと、減速は発生しません。

両方のWebアプリケーションはまったく同じであり、1つのデータベースを使用します

私は本当に混乱しています。理由は何ですか?

誰か助けてもらえますか?

4

2 に答える 2

0

ここで重要な役割を果たすさまざまなものがあります。

  • データベースをホストしているのと同じサーバーからasp.netアプリケーションを実行する場合、SQLサーバー接続が「名前付きパイプ」または「共有メモリ」を介して行われる可能性が高くなります。これらは両方とも、tcp ipと比較して、サーバーと通信するための非常に高速な方法です。別のサーバーでasp.netアプリケーションをホストすると、通信にtcp-ipを使用するように強制されます。

  • ネットワークは良好な場合がありますが、ネットワーク上のフレームサイズやMSSなどの他の要因も確認する必要があります。フレームサイズを大きくすると、SQLサーバーが利用可能な速度全体を効果的に使用できるようになります。ネットワークに接続されているスイッチやルーターなどのデバイスも重要な役割を果たします。

  • すべてとは別に、アプリケーションが不適切なアーキテクチャを使用しているか、間違った方法に従っているとは思えません。たとえば、商品のリストが必要な場合は、クエリを実行してデータベースからすべての商品を取得し、結果を特定のページにフィルターで除外することができます。これは間違った方法です。理想的には、クエリは表示したいレコードのみをフェッチする必要があります。リーダーの代わりにデータアダプタを使用すると、コンテンツ全体を読み取ってメモリ内テーブルを作成しようとするなどの問題も発生します。

于 2012-12-08T20:11:12.510 に答える
0

すべてのサーバーでファイアウォールをオフにしましたが、変更はありません。しかし、Windows FireWallに移動すると、[詳細設定]タブの[ネットワーク接続の設定]セクション(Windows Server 2003の場合)で、[すべての接続]のチェックを外します。

私の速度の問題は解決しました。

于 2013-03-31T04:12:41.687 に答える