拉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
当修改数据库后,页面输出缓存会自动失效,显示修改的数据