1

的WebEdition我会感激你的帮助:的SqlCacheDependency在2008年的SqlServer R2

我们刨去购买SQL Server 2008 R2的网络版(我们必须在这个版本), 但是我们也喜欢使用功能Service Broker for SqlCacheDependency - 通知模式不是轮询模式)。

http://msdn.microsoft.com/en-us/library/cc645993%28v=sql.105%29.aspx据说Web版对Service Broker(消息传递)的支持是:“仅客户端” - 所以某种短版本。

我们的服务器环境是:

  • 一个与SQL Server 2008 R2的网络版的单个实例两个web应用
  • 一个数据库服务器的HTTP服务器。

这个想法是:当新记录被添加到数据库表时,sql server应该通知web-apllications和重置他们的缓存(所以我们将有两个整体缓存)。 我们不刨去创建一个分布式缓存(内存缓存或某物)

有什么办法(通过Service Broker的通知于2008年的SqlServer R2的WebEdition 的SqlCacheDependency)这两种需求结合起来? 购买一个模块或一些服务器架构技巧。任何ides?

在此先感谢。

回答

4

“仅客户端”有点用词不当。这意味着两个交换服务的Service Broker服务必须通过至少一个更高版本的路由消息。除非标准(或更高版本)服务器在它们之间路由消息,否则Express Edition不能与另一个Express Edition交换消息。

虽然这是教育,也是你,因为查询通知(the feature behind the SqlCaheDependency modus operandi)完全无关,从来没有远程发送消息到另一个SQL Server实例。都是本地的,所以“客户端”限制永远不适用。为了100%准确,我应该添加SqlCacheDependency使用查询通知的方式永远不需要远程消息传递,但这是分裂的毛发。

我建议你阅读文章链接,你的文章显示了很多关于这项技术如何工作的误解。

+0

是的,正如您所说 - 短语“仅客户”是误导性的。谢谢你彻底的回答。根据您的信息推断WebEdition不会限制SqlCacheDependency中Service Broker通知的功能。我很高兴听到:) – Barney 2013-02-14 10:52:10

+1

你应该仔细测试SqlCacheDependency。通过查询通知使缓存无效是一项代价高昂的操作,它涉及*数据*写入数据库。它适用于相对静态的数据很少发生变化,但如果数据频繁变化可能会产生问题。 – 2013-02-14 11:05:33

+0

我看到您在很多关于Service Broker Notifications的主题中撰写答案,并且对此有很大的了解。我想问一些更多的问题。 1)是否可以在SELECT上定义一个通知,但是这样做:只有在select中写入的列已更改时,代理才会重置Cache。所以专栏的具体方法。如果表中某些不重要的列发生更改,我不希望缓存重置。我将有一个SELECT和INNER JOIN。从我的搜索它不幸是不可能的。 – Barney 2013-02-14 13:10:40