学习SQL 缓存依赖的笔记(比较初级)

创建依赖于数据库中表或行的缓存项(即缓存数据)。当表中或特定行中发生更改时,带有依赖项的项(缓存数据)便会失效,并会从缓存中移除。并重新读取数据到缓存中,这时候应用程序获取的是最新的数据.

特点:
 SQL 缓存依赖项可用于应用程序缓存和页输出缓存。
 可以在网络园(一台服务器上存在多个处理器)或网络场(多台服务器运行同一应用程序)中使用 SQL 缓存依赖项。
 与 SQL 缓存依赖项关联的数据库操作比较简单,因此不会给服务器带来很高的处理成本。

 

打开Visual Studio命令提示:
1):为SQL Server中数据库Northwind的Customers表启用缓存依赖项(依赖项名为customers,由-et -t指定):
必须注意下面的大小写之分:

Setting environment for using Microsoft Visual Studio 2008 x86 tools.

d:\Program Files\Microsoft Visual Studio 9.0\VC>aspnet_regsql.exe -S localhost -U sa -P admin -ed -d Northwind -et -t Orders

为 SQL 缓存依赖项启用该数据库。

.

已完成。

为 SQL 缓存依赖项启用该表。

 

已完成。

当看到"已完成"时,也就已经为SQL 缓存依赖项启用该表Orders。

2):在Web.config文件为 SQL 缓存依赖项配置页
  
   <!--connectionStrings是数据库连接字符串配置,须手动添加--&gt
   
                           Integrated Security=True" providerName="System.Data.SqlClient" />
   
   
     
       
         
           
         
       
     
      ...

     
对 ASP.NET 应用程序的缓存中所存储的项与特定 SQL Server 数据库表的关系进行配置后,
SqlCacheDependency 类的一个实例将监视该表,以便在表中的项发生更改时自动更新该项或从缓存中移除该项。
监视将以 PollTime 所指定的频率进行。

代码实现版本:
 protected void Page_Load(object sender, EventArgs e)
 {
     Response.AddCacheItemDependency("Northwind:customers");
 
     // Set additional properties to enable caching.
     Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
     Response.Cache.SetCacheability(HttpCacheability.Public);
     Response.Cache.SetValidUntilExpires(true);
 }

3):在aspx页面中使用缓存:
<!--下面的SqlDependency为"数据库名:表名",其中缓存通知必须与用aspnet_regsql.exe时提供的-et -t一致--&gt

 

4):工作做到这里,所以的工作已完成. 一旦应用程序启动,就会每隔一段时间就去数据库查询.


PS:

其实对一个表设置依赖性其实就是在该表内添加一个触发器,当执行INSERT, UPDATE, DELETE等操作时执行一个名叫AspNet_SqlCacheUpdateChangeIdStoredProcedure的存储过程,其修改AspNet_SqlCacheTablesForChangeNotification表对于tableName的changeId,使之递增1.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-462657/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-462657/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值