您的位置:首页 > 数据库

sqlCachedependency【数据缓存依赖】 的使用

2011-03-02 16:24 597 查看
【新手】文章

 

  为提高页面性能,对数据进行缓存是个不错的办法,但我们以前在页头加上<%@ OutputCache VaryByParam="none" Duration="60" %>,这个确实对数据进行缓存了,但不能及时更新,要等到设置的时间失效才会显示最新的数据,我想这样的话索性不用它。但为了性能,我不得不找寻办法。

我想要是缓存能够根据数据的变化而更新的话,那就太好了,后来,我找到了sqlCachedependency【数据缓存依赖】,花了半天的时间把它拿下。

下面是sqlCachedependencyd的配置方法:

 

1.打开命令窗口。

点击:开始 - 所有程序 - visual studio 2008 - visual studio tool - 命令提示

 

2.输入命令提示符。

aspnet_regsql -S localhost -U sa -P sa -d databasename -t articles -et

localhost - 数据库服务器,sa - 账号,sa - 密码, databasename - 数据库, articles - 表名   -et表示允许对数据表采用sqlcachedependency功能,具体参数见下表:

 

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

-lt列出当前数据库中有哪些表已经采用sqlcachedependency功能
 

在执行此操作后,数据库中会自动增加一张表和相关的存储过程

 

3.配置web.config 文件:

在system.web节点增加caching节点,如下:

 

<connectionStrings>

    <add name="ConnStr" connectionString="server=.; uid=sa; pwd=sa; database=Education; pooling=true; min pool size=0; max pool size=2000; load balance timeout=600;" providerName="System.Data.SqlClient"/>

  </connectionStrings>

 

 

<system.web>

<caching>
<sqlCacheDependency enabled="true" pollTime="10000">
<databases>
<add name="sqlCache" connectionStringName="ConnStr"  [注:此处为连接字符串的名称]

                pollTime="10000" [缓存时间-10分钟]/>
</databases>
</sqlCacheDependency>
</caching>

</system.web> 

      配置web.config完毕

 

4.在需要缓存页面如web.aspx的页头添加如下代码:

<%@ OutputCache VaryByParam="none" Duration="60" SqlDependency="sqlCache:articles" %>

说明:sqlCache 为web.config文件 databases节点的name,这里需要一致,articles 为使用缓存依赖的表

 

5.建一个项目测试,放一个文本控件Label,在后台把它赋值为当前时间,

         再在下面放一张表,显示articles文章表的数据,刷新,看效果,看label的值是否变化,多试几

         次,再到articles 表里修改一下数据,再刷新,看label的值又是否变化

 

        6. OK 拉

若有问题,请留言!

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息