SqlCacheDependency基于多个数据库表,多个数据库的缓存运用

  当一个页面信息来自不同的数据库,不同的表,此时非常必要对数据库信息进行缓存,减少不必要的连接数据库和读取数据库信息,而是直接从缓存中读取。

  要使用SqlCacheDependency+outputcache指令进行数据缓存,必须确保每个数据库,需要缓存的表都开启了SqlCacheDependency,具体如何开启请参考ASP.NET 2.0 中的SqlCacheDependency特性

  当开启完毕并且设置好web.config相关信息后,就可以使用OutputCache指令了。

  假设一个页面需用要到blog和Northwind数据,则相关配置信息如下。
web.config
+展开
-XML
  <connectionStrings>
    <add name="dbconnectionString="server=.;database=Northwind;uid=sa;pwd=;providerName="System.Data.SqlClient"/>
    <add name="blogconnectionString="server=.;database=blog;uid=sa;pwd=;providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.web>
    <caching>
      <sqlCacheDependency enabled="true">
        <databases>
          <add name="dbconnectionStringName="dbpollTime="60000"/>
          <add name="blogconnectionStringName="blogpollTime="60000"/>
        </databases>
      </sqlCacheDependency>
    </caching>
  </system.web>


要使用到多个数据库,多个表的aspx页面的Outputcache指令的值
+展开
-HTML
<%@ OutputCache Duration="3600" SqlDependency="db:Employees;blog:blog" VaryByParam="none" %>


监视多个表和多个数据库时,SqlDependency的值需要英文状态下的分号“;”分隔开每个要监视的数据库表对象。对于SqlDependency的值的格式,请参考SqlCacheDependency无法在配置中找到“Northwind”数据库错误。简单来说就是分号“;”前面的值是databases配置节下的节点name的值,而不是连接到数据库的名称,如果使用数据库名称,程序则会出错。

加支付宝好友偷能量挖...


原创文章,转载请注明出处:SqlCacheDependency基于多个数据库表,多个数据库的缓存运用

评论(0)Web开发网
阅读(86)喜欢(0)asp.net-linq