转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ASP.NET 2.0数据缓存功能简介 (转贴)         ★★★★

ASP.NET 2.0数据缓存功能简介 (转贴)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1945 更新时间:2009/4/23 10:46:13
 

在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引擎查询追踪的数据表的情况,并给要使用 Sqlcachedependency 的表加上若干触发器,分别对应到Insert、Update、Delete操作。ASP.NET引擎通过执行它加上的存储过程“AspNet_SqlCachePollingStoredProcedure”,这个存储过程直接返回“AspNet_SqlCacheTablesForChangeNotification”表的内容,让ASP.NET引擎知道哪个表的数据发生的变化。

 

接下来,我们用visual web developer 2005 beta,来创建一个website,往其中增加一个label标签,以显示当前执行的时间。并往其中增加一个gridview控件,用来显示来自pubs数据库的表authors,代码如下:

 

<%@ Page Language="VB" AutoEventWireup="false" CompileWith="Default.aspx.vb" ClassName="Default_aspx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

 <asp:Label ID="Label1" Runat="server" Text="Label" Width="74px" Height="19px"></asp:Label> 

<br />

<asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1">

</asp:GridView>

<br />

<br />

<asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT * FROM authors"

ConnectionString="Initial Catalog=pubs;Data Source=localhost;user id=sa;password=123456">

</asp:SqlDataSource>

</form>

</body>

</html>

 

  在default.aspx.vb的代码的page_load事件中,加入以下代码

 

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Label1.Text = CType(System.DateTime.Now(), String)

End Sub

 

  接下来,我们开始配置web.config文件。我们采用的配置文件如下:

 

<?xml version="1.0"?>

[1] [2]  下一页


[C语言系列]NET 中C#的switch语句的语法  [系统软件]托拽Explore中的文件到VB.net的窗口
[系统软件]Boost库在XP+Visual C++.net中的安装  [常用软件]新配色面板:Paint.Net3.0RC1官方下载
[常用软件]用内建的“Net Meeting”聊天  [VB.NET程序]Henry的VB.NET之旅(三)—共享成员
[VB.NET程序]Henry的VB.NET之旅(二)—构造与析构  [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体
[VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET)  [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台