SqlCacheDependency
页的Sql缓存
Cahce/SqlCachePage.aspx

数据源控件的Sql缓存
Cahce/SqlCachePage.aspx

web.config中的相关配置
SqlCacheDependency  [转]  <connectionStrings>
SqlCacheDependency  [转]    
<add name="SqlConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\VS2005_Test.mdf;Integrated Security=True;User Instance=True"
SqlCacheDependency  [转]      providerName
="System.Data.SqlClient" />
SqlCacheDependency  [转]  
</connectionStrings>
SqlCacheDependency  [转]  
<system.web>
SqlCacheDependency  [转]    
<caching>
SqlCacheDependency  [转]      
<sqlCacheDependency enabled="true" pollTime="10000">
SqlCacheDependency  [转]        
<databases>
SqlCacheDependency  [转]          
<add name="VS2005_Test" connectionStringName="SqlConnectionString" />
SqlCacheDependency  [转]        
</databases>
SqlCacheDependency  [转]      
</sqlCacheDependency>
SqlCacheDependency  [转]      
<!-- 如果是SqlServer2005的话,则只需如下设置,因为SqlServer支持基于通知的缓存失效
SqlCacheDependency  [转]      <sqlCacheDependency enabled="true" />
SqlCacheDependency  [转]      
-->
SqlCacheDependency  [转]    
</caching>
SqlCacheDependency  [转]  
</system.web>


注意
Sql Server 2005 基于通知的缓存失效,不用aspnet_regsql设置,要设置属性SqlDependency="CommandNotification"。在首次执行某 SQL 查询之前,必须在应用程序某处调用 System.Data.SqlClient.SqlDependency.Start() 方法。此方法应放在 global.asax 文件的 Application_Start() 事件中。因为Sql Server 2005 基于通知的缓存失效对支持查询通知的查询语法有许多限制,所以我觉得最好先别用,而是使用轮询机制。在使用轮询机制时如本例子中的SqlCacheDependency="VS2005_Test:sqlcache",冒号前面是配置文件中配置的相关值指向数据库连接,后面是启用SqlCache的表名,注意区分大小写。

相关文章: