【问题标题】:Does SqlCacheDependency use polling or query notification?SqlCacheDependency 是否使用轮询或查询通知?
【发布时间】:2014-06-16 06:01:02
【问题描述】:

我的需求是在一个键值表之上构建一个简单的配置框架。由于这经常使用且很少更改,因此更愿意缓存表值。一项要求是,如果数据库中的值发生更改,它应该立即反映在应用程序中。所以,我打算实现SqlCacheDependency。医生说

SQL Server 2005 的查询通知机制检测变化 到使 SQL 查询结果无效并删除任何 与 SQL 查询关联的缓存项 System.Web.Caching.Cache

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

获取或设置 SqlCacheDependency 轮询 用于更改的数据库表。

我对它是使用查询通知技术还是使用轮询机制感到困惑。

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

【问题讨论】:

    标签: asp.net caching sqldependency


    【解决方案1】:

    从 SqlServer 2005 开始(因此适用于 sqlserver 2008R2),Sql Cache Dependency 使用查询更改通知机制工作。它们使用数据库中内置的通知基础结构和消息传递系统,称为Service Broker

    Sql server 2000 及更早版本采用轮询机制。

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

    Jess Liberty,书的作者:在 asp.net 中编程(Oreilly 媒体) 说:

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

    MSDN 还表示 :: 此配置设置(即 <sqlCacheDependency>)在您将 sqlCacheDependency 元素与 SQL Server 2005 上的查询通知结合使用时无效。这确实意味着设置 @987654331使用查询通知时@ 将不起作用

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2018-04-28
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    相关资源
    最近更新 更多