Ao usar o Cache no passado, sempre tomei cuidado com a inconsistência entre a versão dos dados no cache e a versão dos dados no banco de dados. Embora a dependência do cache de arquivo implementada por meio de gatilhos + IO de arquivo também possa obter atualizações oportunas dos dados armazenados em cache, cada um. O aplicativo gera um arquivo IO. Não é muito econômico e o desempenho do gatilho não é muito alto; portanto, ao adicionar, excluir ou modificar, geralmente é obtido excluindo o valor da chave de cache, mas pode haver algumas omissões. SqlCacheDependency é implementado no asp.net 2.0. Este artigo descreve como implementar SqlCacheDependency no asp.net 2.0:
Primeiro, adicione o seguinte código ao arquivo do nó web.config system.web:
<armazenamento em cache>
<sqlCacheDependency habilitado = "true">
<bancos de dados>
<add name="AtlasDemoDb" connectionStringName="AtlasDemoDbConnectionString" pollTime="12000"></add>
</bancos de dados>
</sqlCacheDependency>
</caching>
Desta forma, um banco de dados dependente de cache é configurado e o EnableCaching do objeto ObjectDataSource na página é definido como true. Em seguida, defina a propriedade SqlCacheDependency como AtlasDemoDb:SimpleDemo1, AtlasDemoDb é o nome do banco de dados de cache configurado na web. .config e SimpleDemo1 é um nome de tabela no banco de dados.
Assim, o sistema também terá os seguintes problemas:
O banco de dados 'AtlasDemoDb' não está habilitado para notificações de cache SQL.
Para habilitar um banco de dados para notificações de cache SQL, use o método System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications ou a ferramenta de linha de comando aspnet_regsql. Para usar esta ferramenta, execute "aspnet_regsql.exe -?" para obter detalhes.
Como mencionado acima, é problemático executar aspnet_regsql.exe. Você pode preenchê-lo no evento Page_Load.
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(System.Configuration.ConfigurationManager.ConnectionStrings["AtlasDemoDbConnectionString"].ConnectionString, "SimpleDemo1");
Dessa forma você pode usar o SqlCacheDependency. Testarei o desempenho desse método amanhã. Estou com muito sono hoje, então vou dormir primeiro
http://www.cnblogs.com/jillzhang/archive/2006/08/15/477914.html