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