SQL数据缓存依赖功能
2011-11-15 18:53
344 查看
首先,了解一下数据库缓存依赖功能吧。
如一个网站上页面首次运行时,显示了数据表中部分数据和页面刷新时间,由于利用·OutputCache指令设置了页面输出缓存(缓存有效时间为1000秒),
因此,很长时间之内,无论如何刷新页面,表格数据和页面刷新时间内容都不应该发生变化。
该页面还同时使用了基于轮询的SQL数据缓存依赖功能,那么修改title数据表中数据(用户可在SQL Server2000中执行UPDATE语句进行修改),
并再次刷新页面时,数据表和页面刷新时间都发生了变化。
这种变化就是SQL缓存依赖功能的作用。
每当经过一个短暂的轮询时间,数据库都会检测一次title数据表中数据是否发生变化。
如果发生变化,则自动移除原有页面输出缓存内容,实施缓存数据更新。
使用SQL数据缓存依赖功能,必须正确实现以下3个步骤:
一是:配置SQL Server数据库,以启用SQL数据库缓存依赖支持
如何实现这一步:1:可以使用“Visual Studio 2005 命令提示”:如果不明白参数配置可以使用apsnet_regsql.exe -? 命令查看帮助文档
//启用数据库依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -ed
//启用数据库表的依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -t 表的名称 -et
//关闭数据库的数据缓存依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -dd
//关闭数据表的数据缓存依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -t 表的名称 -dt
2:使用SqlCacheDependencyAdmin类实现同样的配置功能
二:配置Web.config文件
<configuration>
<appSettings/>
<connectionStrings>
<add name="pubsConnectionString" connectionString="Data Source=WANGXIAOJUN;Initial Catalog=pubs;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency enabled="true" pollTime="600">
<databases>
<add name="pubs" connectionStringName="pubsConnectionString"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
</configuration>
三:实现具体应用程序,使用SQL数据缓存依赖功能
在页面中使用
<%@ OutputCache Duration="1000" SqlDependency="pubs:jobs" VaryByParam="none" %>
或者在数据源控件中使用
<asp:SqlDataSource ID="SqlDataSource1" runat="server" EnableCaching="true" SqlCacheDependency="pubs:jobs"
ConnectionString="<%$ ConnectionStrings:pubsConnectionString %>"
SelectCommand="SELECT [job_id], [job_desc], [min_lvl], [max_lvl] FROM [jobs]">
</asp:SqlDataSource>
如一个网站上页面首次运行时,显示了数据表中部分数据和页面刷新时间,由于利用·OutputCache指令设置了页面输出缓存(缓存有效时间为1000秒),
因此,很长时间之内,无论如何刷新页面,表格数据和页面刷新时间内容都不应该发生变化。
该页面还同时使用了基于轮询的SQL数据缓存依赖功能,那么修改title数据表中数据(用户可在SQL Server2000中执行UPDATE语句进行修改),
并再次刷新页面时,数据表和页面刷新时间都发生了变化。
这种变化就是SQL缓存依赖功能的作用。
每当经过一个短暂的轮询时间,数据库都会检测一次title数据表中数据是否发生变化。
如果发生变化,则自动移除原有页面输出缓存内容,实施缓存数据更新。
使用SQL数据缓存依赖功能,必须正确实现以下3个步骤:
一是:配置SQL Server数据库,以启用SQL数据库缓存依赖支持
如何实现这一步:1:可以使用“Visual Studio 2005 命令提示”:如果不明白参数配置可以使用apsnet_regsql.exe -? 命令查看帮助文档
//启用数据库依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -ed
//启用数据库表的依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -t 表的名称 -et
//关闭数据库的数据缓存依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -dd
//关闭数据表的数据缓存依赖功能
aspnet_regsql.exe -S localhost -U sa -P sa -d 数据库名称 -t 表的名称 -dt
2:使用SqlCacheDependencyAdmin类实现同样的配置功能
二:配置Web.config文件
<configuration>
<appSettings/>
<connectionStrings>
<add name="pubsConnectionString" connectionString="Data Source=WANGXIAOJUN;Initial Catalog=pubs;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency enabled="true" pollTime="600">
<databases>
<add name="pubs" connectionStringName="pubsConnectionString"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
</configuration>
三:实现具体应用程序,使用SQL数据缓存依赖功能
在页面中使用
<%@ OutputCache Duration="1000" SqlDependency="pubs:jobs" VaryByParam="none" %>
或者在数据源控件中使用
<asp:SqlDataSource ID="SqlDataSource1" runat="server" EnableCaching="true" SqlCacheDependency="pubs:jobs"
ConnectionString="<%$ ConnectionStrings:pubsConnectionString %>"
SelectCommand="SELECT [job_id], [job_desc], [min_lvl], [max_lvl] FROM [jobs]">
</asp:SqlDataSource>
相关文章推荐
- 使用SQL数据缓存依赖功能的步骤
- SQL数据缓存依赖总结
- SQL数据缓存依赖总结
- 在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency
- 使用基于轮询的SQL数据缓存依赖
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
- SQL数据缓存依赖
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
- SQL数据缓存依赖
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
- SQL轮询数据依赖缓存
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
- 使用基于轮询的SQL数据缓存依赖
- SQL SERVER 2000 & SQL SERVER 2005 数据缓存依赖
- [转]使用基于轮询的SQL数据缓存依赖
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
- [转]使用基于轮询的SQL数据缓存依赖
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ] -- [转]
- cache应用(asp.net 2.0 SQL数据缓存依赖 [SqlCacheDependency ] )
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]