【緩衝】Sql Server 2005/2008 SqlCacheDependency查詢通知的使用總結

來源:互聯網
上載者:User

標籤:

Sql server 7.0/2000下 SqlCacheDependency使用輪詢的方式進行緩衝失效檢查, 雖然ms說對伺服器壓力不大, 但還是有一些的, 而且對於不常改動的混存內容無休止的輪詢感覺有點浪費, 不很經濟.

 

Sql server 2005/2008下增加使用查詢通知方式進行緩衝失效檢查, 它通過Sql Server內部的訊息佇列進行非同步通知, 這樣就大大減輕了伺服器的壓力, 實現的很經濟, 下面就是具體的步驟:

 

1.檢測是否已經啟用Service Broker

  Select DATABASEpRoPERTYEX(‘資料庫名稱‘,‘IsBrokerEnabled‘)  -- 1 表示已經啟用 0 表示沒有啟用

 

2.啟用Service Broker                   

  ALTER DATABASE 資料庫名稱 SET ENABLE_BROKER;                 

  注意:如果執行此語句處於假死狀態,請重啟(restart)資料庫,然後什麼都別做, 先執行上面啟用Service Broker這個語句就行了!

 

3.給您的資料庫訪問帳號授予許可權

  GRANT SUBSCRIBE QUERY NOTIFICATIONS TO test

  注意:這一步非常重要, 如果沒有許可權, 資料庫改變的通知將無法接收, cache永遠都不會被重新整理,我開始是用的sa帳號,死活都不重新整理,花了我兩天時間調試這個問題, 還是無法給sa授此許可權(ms禁止), 所以,換個資料庫訪問帳號即可.

 

4.檢查是否有以前的緩衝錯誤

 

隱藏行號 複製代碼 ? 這是一段程式碼。
  1. USE [master]    
  2. GO    
  3. ALTER DATABASE Northwind SET  SINGLE_USER WITH ROLLBACK IMMEDIATE    
  4. GO    
  5. ALTER DATABASE Northwind SET  SINGLE_USER     
  6. GO    
  7. ALTER DATABASE Northwind SET ENABLE_BROKER     
  8. GO    
  9. ALTER DATABASE Northwind SET  MULTI_USER     
  10. GO     

 

5、啟動SqlDependency監聽.

   在Global.ascx裡的Application_Start和Application_End裡增加如下代碼:

隱藏行號 複製代碼 ? 這是一段程式碼。
  1. void Application_Start(object sender, EventArgs e)
  2. {
  3.     string connString2 = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
  4.     System.Data.SqlClient.SqlDependency.Start(connString2);
  5. }
  6. void Application_End(object sender, EventArgs e)
  7. {
  8.     string connString2 = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
  9.     System.Data.SqlClient.SqlDependency.Stop(connString2);
  10. }

 

 

6、主體程式

 

webfrom1: 單表緩衝

webfrom2: LINQ TO SQL 緩衝

webfrom3: LINQ TO SQL 多表緩衝

 

【緩衝】Sql Server 2005/2008 SqlCacheDependency查詢通知的使用總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.