Lors de l'utilisation du cache dans le passé, j'ai toujours fait attention à l'incohérence entre la version des données dans le cache et la version des données dans la base de données, bien que la dépendance du cache de fichiers implémentée via les déclencheurs + les entrées/sorties de fichiers puisse également permettre des mises à jour en temps opportun des données mises en cache, chacune d'elles. L'application génère un fichier IO. Ce n'est pas très économique et les performances de déclenchement ne sont pas très élevées, donc lors de l'ajout, de la suppression ou de la modification, cela est souvent obtenu en supprimant la valeur de la clé de cache, mais il peut y avoir quelques omissions. SqlCacheDependency est implémenté dans asp.net 2.0 Cet article décrit comment implémenter SqlCacheDependency dans asp.net 2.0 :
Tout d’abord, ajoutez le code suivant au fichier de nœud web.config system.web :
De cette façon, une base de données dépendante du cache est configurée et l'attribut EnableCaching de l'objet ObjectDataSource dans la page est défini sur true. Ensuite, définissez la propriété SqlCacheDependency sur AtlasDemoDb:SimpleDemo1, AtlasDemoDb est le nom de la base de données du cache configuré dans le Web. .config et SimpleDemo1 est un nom de table sous la base de données.
De cette façon, le système rencontrera également les problèmes suivants :
La base de données « AtlasDemoDb » n'est pas activée pour les notifications de cache SQL.
Pour activer une base de données pour les notifications de cache SQL, utilisez la méthode System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications ou l'outil de ligne de commande aspnet_regsql. Pour utiliser cet outil, exécutez "aspnet_regsql.exe -?"
Comme mentionné ci-dessus, il est difficile d'exécuter aspnet_regsql.exe. Vous pouvez le remplir dans l'événement Page_Load.
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(System.Configuration.ConfigurationManager.ConnectionStrings["AtlasDemoDbConnectionString"].ConnectionString, "SimpleDemo1");
De cette façon, vous pouvez utiliser SqlCacheDependency. Je testerai les performances de cette méthode demain. J'ai trop sommeil aujourd'hui, alors je vais d'abord me coucher
http://www.cnblogs.com/jillzhang/archive/2006/08/15/477914.html