Bei der Verwendung von Cache habe ich in der Vergangenheit immer auf die Inkonsistenz zwischen der Datenversion im Cache und der Datenversion in der Datenbank geachtet. Obwohl die durch Trigger + Datei-E/A implementierte Datei-Cache-Abhängigkeit auch jeweils eine zeitnahe Aktualisierung der zwischengespeicherten Daten erreichen kann Die Anwendung generiert eine E/A-Datei. Dies ist nicht sehr wirtschaftlich und die Triggerleistung ist nicht sehr hoch. Daher wird dies beim Hinzufügen, Löschen oder Ändern häufig durch Löschen des Cache-Schlüsselwerts erreicht, es können jedoch einige Auslassungen auftreten. SqlCacheDependency ist in asp.net 2.0 implementiert. In diesem Artikel wird beschrieben, wie SqlCacheDependency in asp.net 2.0 implementiert wird:
Fügen Sie zunächst den folgenden Code zur Knotendatei web.config system.web hinzu:
<caching>
<sqlCacheDependency aktiviert="true">
<Datenbanken>
<add name="AtlasDemoDb" ConnectionStringName="AtlasDemoDbConnectionString" pollTime="12000"></add>
</Datenbanken>
</sqlCacheDependency>
</caching>
Auf diese Weise wird eine Cache-abhängige Datenbank konfiguriert und EnableCaching des ObjectDataSource-Objekts auf der Seite auf „true“ gesetzt. Setzen Sie dann die SqlCacheDependency-Eigenschaft auf AtlasDemoDb:SimpleDemo1, AtlasDemoDb ist der im Web konfigurierte Cache-Datenbankname .config und SimpleDemo1 ist ein Tabellenname unter der Datenbank.
Genauso wird das System auch die folgenden Probleme haben:
Die Datenbank „AtlasDemoDb“ ist für SQL-Cache-Benachrichtigungen nicht aktiviert.
Um eine Datenbank für SQL-Cache-Benachrichtigungen zu aktivieren, verwenden Sie die Methode System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications oder das Befehlszeilentool aspnet_regsql. Um dieses Tool zu verwenden, führen Sie „aspnet_regsql.exe -?“ aus, um weitere Informationen zu erhalten.
Wie oben erwähnt, ist es problematisch, aspnet_regsql.exe auszuführen. Sie können es im Page_Load-Ereignis ausfüllen.
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(System.Configuration.ConfigurationManager.ConnectionStrings["AtlasDemoDbConnectionString"].ConnectionString, "SimpleDemo1");
Auf diese Weise können Sie SqlCacheDependency verwenden. Ich werde morgen die Leistung dieser Methode testen. Ich bin heute zu müde, also gehe ich zuerst ins Bett
http://www.cnblogs.com/jillzhang/archive/2006/08/15/477914.html