博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL缓存依赖之(一)

Posted on 2011-09-05 13:16  sunjie  阅读(228)  评论(0编辑  收藏  举报

拉SQL缓存依赖
(支持所有最近版本的SQL)

背景: 
     作为.net Framework2.0里新增的一个功能,该功能可以在指定的数据库数据修改时,自动重新载入缓存的数据。


原理:
     首先介绍拉SQL缓存依赖, 主要使用了数据库的触发器,当表被修改时,触发器被触发,一个名为  AspNet_SqlCacheTablesForChangeNotication的数据表的一行被更新,来记录表被修改的情况。而.net又在后台启用了一个线程去监听该表的信息,如果发现修改,就把依赖与数据表的缓存清除掉..


好处:
    可以减少与数据库的通信,而只是去检查AspNet_SqlCacheTablesForChangeNotication表的数据是否修改过.

使用拉SQL缓存依赖前的配置
1,必须对一个或多个数据表启用SQL缓存依赖
2,必须在Web配置文件中配置SQL缓存依赖
为表启用SQL缓存依赖的命令:(主要创建表和触发器)
其中:
FEIYANG\SQL2005  代表数据库实例名 
sa  和 welcome 代表用户名和密码
ProductInfo 指数据库
Mettles  指表
  aspnet_regsql -S FEIYANG\SQL2005 -U sa -P welcome -ed -d ProductInfo -et -t Mettles
为拉SQL缓存依赖配置应用程序

Code

对页面输出缓存使用拉SQL缓存依赖:

 

Code

当修改数据库后,页面输出缓存会自动失效,显示修改的数据