当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP.NET 2.0数据缓存功能简介

ASP
提高SQL的执行效率的ASP的五种做法
asp的offset的一个go to page
asp中command的在单条记录时,有些字段显示为空的问题
asp,php一句话木马整理方便查找木马
asp 合并记录集并删除的sql语句
asp下循环一行多少个
asp循环行数输出函数
asp access重新开始编号
ASP生成数字相加求和的BMP图片验证码
静态页面利用JS读取cookies记住用户信息
比较详细的Asp伪静态化方法及Asp静态化探讨
asp Response.flush 实时显示进度
Asp高级故障解决以及相关代码
asp智能脏话过滤系统v1.0
ASP文件中的安全问题
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
asp两组字符串数据比较合并相同数据
asp MYSQL出现问号乱码的解决方法
asp文章中随机插入网站版权文字的实现代码
ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

ASP.NET 2.0数据缓存功能简介


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 127 ::
收藏到网摘: n/a

在ASP.NET 2.0,新增加了不少新的功能和控件。其中,在数据的缓存功能,比asp.net 1.1有了很大的改变。众所周知,数据的缓存功能是十分重要的,我们可以把一些在相对一段时间内不发生改变的数据放在缓存中,这样,就不必要每次去读取数据库,当下次再需要这些数据时,可以直接从缓存中取得,大大增强了效率。

  而在asp.net 1.1 中,已经比较好地实现了数据的缓存功能,但有一个小问题,那就是如果数据库中的数据发生了变化,缓存不能在指定的时间内更新,而必须等到缓存失效。比如,在网页中,如果你对商品的一些详细信息,如价格等使用了页面缓存,那么假如在后台修改了这些信息,用户不会马上看到这些信息,而要延迟一些时间才看到。在某些应用场合,如果你要做到对于数据库的任何更新,都能马上可以在缓存的变化生效的话,在asp.net 1.1中则是比较难实现的,而在asp.net 2.0中,则可以很方便地实现该功能。本文将以.net Framework 2.0 beta,visual web developer express beta ,来介绍该功能的实现。

  首先,在asp.net 2.0中,针对sql server 7/2000,以及即将发行的sql server 2005(Yukon),分别提供了新的缓存功能。这里着重介绍针对sql server 7/2000的缓存功能。这个新的数据缓存功能,叫做SqlCacheDependency,要实现该功能,需要采用如下步骤:

  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引擎查询追踪的数据