2

これが状況です...

場所Aにローカル開発サーバーがあり、すべてのaspxページを構築しています。私たちのデータベースはロケーションAにもあります。

開発サーバーでファイルをテストする場合、クエリは1秒未満で最も高速に実行されます。

ファイルをロケーションBにあるライブサーバーに移動しました(データベースはロケーションAにあります)。クエリには、開発サーバーの5〜10倍の時間がかかります。場所Aはイーストアングリアにあり、場所Bはおよそ100マイル離れたロンドンにあります。

また、開発サーバーとライブサーバーの両方で、実行される最初のクエリは、その後の残りのクエリよりもはるかに長い時間がかかります。

速度低下の原因となっている可能性のあるアイデアはありますか?

編集

いくつかのページでトレースをオンにしましたが、End Loadがすべてのメソッドの中で最も時間がかかっているようですが、理由はわかりません。

また、残念ながら、外部サーバーにアクセスしてSSMSまたはOracle開発者をインストールし、クエリをテストすることもできません。

4

1 に答える 1

1

「実行される最初のクエリは、その後の残りのクエリよりもはるかに時間がかかります。」

これがキャッシングの効果です。最初のクエリは、物理IOの料金を支払います。後続のクエリは、DBバッファキャッシュまたは他のOSまたはアーキテクチャバッファのいずれかで、すでにキャッシュにある関連レコードを見つけることで恩恵を受けます。

2つの環境のパフォーマンスの違いについては、おそらくこれに起因します。

「およそ100マイル離れている」

2つの場所間のネットワーク接続がデータ転送を抑制している可能性があります。プライベート接続であると仮定して、ネットワーク管理者に相談する必要があります。公共インフラストラクチャを使用している場合、選択肢は限られています。


「EndLoadはすべてのメソッドの中で最も時間がかかっているようです」

さて、私はASPXの専門家ではありません([oracle]タグのためにここにいます)が、いくつかの軽い検索では、EndLoadイベントの直前に発生する「ユーザーコントロール」である可能性を示唆するいくつかのスレッドが表示されます。たとえば、この他のSOの質問

于 2013-03-27T12:29:50.747 に答える