sql数据表缓存

来源:互联网 发布:简易cad软件 编辑:程序博客网 时间:2024/05/19 22:03

 1、在.net framework 2.0的安装目录下
(默认是WINNT/Microsoft.NET/Framework/v2.0.40607),启动一个叫ASPnet_regsql.exe的命令行工具,比如:

ASPnet_regsql -S localhost –U sa –P 123456 -d Pubs –ed

  上面的意思是,指定了本地的数据库服务器localhost,并指定了登陆的用户名和密码,并用参数-d指定了要采用哪一个数据库(这里是指定了pubs)数据库,-ed参数表示是允许该数据库使用sqlcachedependency功能。

  接着,我们需要指定对哪一个表使用数据sqlcachedependency功能,如:

ASPnet_regsql -S localhost –U sa -P 123456 -ed -d pubs -et -t authors

  上面语句的意思是,指定对pubs数据库中的authors表使用sqlcachedependency功能,-t参数后是表的名称,-et是允许该表使用sqlcachedependency功能。其他的有关参数简单介绍如下:

参数参数意义-? 显示该工具的帮助功能.-S 后接的参数为数据库服务器的名称或者IP地址-U 后接的参数为数据库的登陆用户名.-P 后接的参数为数据库的登陆密码-E 当使用windows集成验证时,使用该功能-t 后接参数为对哪一个表采用sqlcachedependency功能。-d 后接参数为对哪一个数据库采用sqlcachedependency功能-ed 允许对数据库使用sqlcachedependency功能-dd 禁止对数据库采用sqlcachedependency功能-et 允许对数据表采用sqlcachedependency功能-dt 禁止对数据表采用sqlcachedependency功能-lt 列出当前数据库中有哪些表已经采用sqlcachedependency功能


  Sqlcachedependency的的原理简单来说,是采用ASPnet_regsql这个专门工具,预先设定要监视的数据库和表,并在数据库中增加一个专门的表,打开数据库,会发现多了一个数据表ASPnet_sqlcachetablesforchangenotification,如下图:


  这个表有三个字段,“tableName”记录要追踪的数据表的名称,“notificationCreated”记录开始追踪的时间,“changeId”是一个int类型的字段,每当追踪的数据表的数据发生变化时,这个字段的值就加1。 此外还会在指定的数据库中增加几个存储过程,用来让ASP.NET引擎查询追踪的数据表的情况,并给要使用 Sqlcachedependency 的表加上若干触发器,分别对应到Insert、Update、Delete操作。ASP.NET引擎通过执行它加上的存储过程“ASPNet_SqlCachePollingStoredProcedure”,这个存储过程直接返回“ASPNet_SqlCacheTablesForChangeNotification”表的内容,让ASP.NET引擎知道哪个表的数据发生的变