0

Web アプリケーションが特定のテーブルに対して膨大な回数のクエリを実行していることに気付きました。テーブルは比較的小さく、約 100 行しか使用されていません。

このテーブルを 15 分ごとに Web サイト アプリケーションのメモリに格納する方法があるかどうか疑問に思っています。そのため、システムは同じ情報を何度も取得するために多くのクエリを実行する必要がありません。これは、多くの異なるユーザー間で利用できます。

このテーブルは Client テーブルであるため、ユーザーはさまざまなクライアントからログインします。データはかなり静的で、おそらく 1 日に 1 回更新されます。

更新: SQL プロファイラーは、クエリがかなり実行されていることを示しているので、それが私の懸念事項です。ウェブサイトは特に遅くはありません。これにより、さらに高速化できると思いました。

4

3 に答える 3

5

テーブルが小さく、頻繁にクエリが実行される場合、データとすべてのインデックスが完全に SQL Server のメモリに格納され、クエリ プランがキャッシュされ、クエリが非常に高速になる可能性が非常に高くなります。

変更を加える前に、実際のパフォーマンスへの影響を測定してください。

パフォーマンスに影響がある場合は、データベースへのトリップを減らすために使用できる多くのキャッシュ戦略があります。特定のキャッシュ戦略を推奨するには、テーブルへのアクセス パターンと情報の一貫性の必要性に関する詳細情報が必要です。

あなたは述べます

何度も同じ情報を得るために

だけでなく、状態

15分に1回

情報が何度も同じである場合は、アプリケーションの開始時に ASP.Net キャッシュに 1 回読み込むことができます。頻繁に変更される可能性があるが、特定のユーザーにとってデータが少し古くても問題ない場合は、時間ベースのキャッシュ有効期限ポリシーを使用できます。データが頻繁に変更されるが、変更後すぐに最新の状態にする必要がある場合は、キャッシュの有効期限についてSQL 依存関係を考慮することができます。

ASP.Net キャッシュの詳細については、次を参照してください。

http://msdn.microsoft.com/en-us/library/xsbfdd8c(v=vs.100).aspx

具体的には

http://msdn.microsoft.com/en-us/library/6hbbsfk6(v=vs.100).aspx

于 2013-07-12T16:53:36.730 に答える