これまでキャッシュを使用していたときは、キャッシュ内のデータ バージョンとデータベース内のデータ バージョンの不一致に常に注意していましたが、トリガー + ファイル IO によって実装されたファイル キャッシュの依存関係により、キャッシュされたデータのタイムリーな更新も実現できます。アプリケーションが IO ファイルを生成するのはあまり経済的ではなく、トリガーのパフォーマンスもそれほど高くないため、追加、削除、または変更を行う場合は、キャッシュ キーの値を削除することで実現されることがよくありますが、いくつかの漏れがある可能性があります。 SqlCacheDependency は asp.net 2.0 に実装されています。この記事では、asp.net 2.0 で SqlCacheDependency を実装する方法について説明します。
まず、次のコードを web.config system.web ノード ファイルに追加します。
<キャッシング>
<sqlCacheDependencyenabled="true">
<データベース>
<add name="AtlasDemoDb" connectionStringName="AtlasDemoDbConnectionString" pollTime="12000"></add>
</データベース>
</sqlキャッシュ依存関係>
キャッシュ
依存データベースが構成され、ページ内の ObjectDataSource オブジェクトの EnableCaching が true に設定されます。次に、SqlCacheDependency プロパティを AtlasDemoDb:SimpleDemo1 に設定します。AtlasDemoDb は、Web で構成されたキャッシュ データベース名です。 .config、SimpleDemo1 はデータベース内のテーブル名です。
このように、システムには次のような問題も発生します。
データベース「AtlasDemoDb」は SQL キャッシュ通知に対して有効になっていません。
データベースで SQL キャッシュ通知を有効にするには、System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications メソッド、またはコマンド ライン ツール aspnet_regsql を使用します。このツールを使用するには、「aspnet_regsql.exe -?」を実行して詳細を確認してください。
上で述べたように、aspnet_regsql.exe を実行するのは面倒ですが、Page_Load イベントに記入できます。
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(System.Configuration.ConfigurationManager.ConnectionStrings["AtlasDemoDbConnectionString"].ConnectionString, "SimpleDemo1");
このようにして、SqlCacheDependency を使用できます。明日、このメソッドのパフォーマンスをテストします。今日はとても眠いので先に寝ます
http://www.cnblogs.com/jillzhang/archive/2006/08/15/477914.html