學習SQL 快取依賴的筆記(比較初級)

iDotNetSpace發表於2008-09-23

建立依賴於資料庫中表或行的快取項(即快取資料)。當表中或特定行中發生更改時,帶有依賴項的項(快取資料)便會失效,並會從快取中移除。並重新讀取資料到快取中,這時候應用程式獲取的是最新的資料.

特點:
 SQL 快取依賴項可用於應用程式快取和頁輸出快取。
 可以在網路園(一臺伺服器上存在多個處理器)或網路場(多臺伺服器執行同一應用程式)中使用 SQL 快取依賴項。
 與 SQL 快取依賴項關聯的資料庫操作比較簡單,因此不會給伺服器帶來很高的處理成本。

 

開啟Visual Studio命令提示:
1):為SQL Server中資料庫Northwind的Customers表啟用快取依賴項(依賴項名為customers,由-et -t指定):
必須注意下面的大小寫之分:

Setting environment for using Microsoft Visual Studio 2008 x86 tools.

d:\Program Files\Microsoft Visual Studio 9.0\VC>aspnet_regsql.exe -S localhost -U sa -P admin -ed -d Northwind -et -t Orders

為 SQL 快取依賴項啟用該資料庫。

.

已完成。

為 SQL 快取依賴項啟用該表。

 

已完成。

當看到"已完成"時,也就已經為SQL 快取依賴項啟用該表Orders。

2):在Web.config檔案為 SQL 快取依賴項配置頁
  
   <!--connectionStrings是資料庫連線字串配置,須手動新增--&gt
   
                           Integrated Security=True" providerName="System.Data.SqlClient" />
   

   
     
       
         
           
         

       

     

      ...

     
對 ASP.NET 應用程式的快取中所儲存的項與特定 SQL Server 資料庫表的關係進行配置後,
SqlCacheDependency 類的一個例項將監視該表,以便在表中的項發生更改時自動更新該項或從快取中移除該項。
監視將以 PollTime 所指定的頻率進行。

程式碼實現版本:
 protected void Page_Load(object sender, EventArgs e)
 {
     Response.AddCacheItemDependency("Northwind:customers");
 
     // Set additional properties to enable caching.
     Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
     Response.Cache.SetCacheability(HttpCacheability.Public);
     Response.Cache.SetValidUntilExpires(true);
 }

3):在aspx頁面中使用快取:
<!--下面的SqlDependency為"資料庫名:表名",其中快取通知必須與用aspnet_regsql.exe時提供的-et -t一致--&gt

 

4):工作做到這裡,所以的工作已完成. 一旦應用程式啟動,就會每隔一段時間就去資料庫查詢.


PS:

其實對一個表設定依賴性其實就是在該表內新增一個觸發器,當執行INSERT, UPDATE, DELETE等操作時執行一個名叫AspNet_SqlCacheUpdateChangeIdStoredProcedure的儲存過程,其修改AspNet_SqlCacheTablesForChangeNotification表對於tableName的changeId,使之遞增1.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-462657/,如需轉載,請註明出處,否則將追究法律責任。

相關文章