SqlCacheDependency是否使用轮询或查询通知



我的需求是在Key值表之上构建一个简单的配置框架。由于这是经常使用且很少更改的,因此更倾向于缓存表值。一个要求是,如果值在DB中改变,它应该立即反映在应用程序中。所以,我计划实现SqlCacheDependency。医生说

SQL Server 2005的查询通知机制检测更改对数据进行处理,使SQL查询的结果无效,并删除任何数据缓存与SQL查询关联的项System.Web.Caching.Cache

从示例中我注意到配置中有一个名为PollTime的属性。医生说

获取或设置SqlCacheDependency轮询对象的频率修改数据库表

我很困惑,它是使用查询通知技术还是使用轮询机制。

我的堆栈是。net 4.0和SQL Server 2008 R2

从SqlServer 2005开始(因此适用于SqlServer 2008R2), Sql缓存依赖通过使用查询更改通知机制工作。他们使用内置在数据库中的通知基础设施和消息传递系统,称为 Service Broker

Sql server 2000和更早的版本采用了轮询机制。

你可能有兴趣进一步阅读以下建议::

Jess Liberty, Book: programming in asp.net (Oreilly Media)的作者说:

如果您使用sqlserver 2005或更高版本的查询通知机制,则无需使用aspnet_regsql.exe配置数据库,也无需在web.config中添加<sqlCacheDependency>元素。

MSDN 还说明::当您在SQL Server 2005上使用sqlCacheDependency元素与查询通知一起使用时,此配置设置即<sqlCacheDependency>没有效果。这意味着当使用查询通知时,设置pollTime将没有效果。

相关内容

  • 没有找到相关文章

最新更新