【導讀】本文中,我想通過一個簡單的Windows案頭表單樣本(基於SQL Server 2005的範例資料庫AdventureWorks)向讀者展示SQL Server 2005中這種新的主動地通知工作機理。由於Visual Studio 2005的革命性變化,你可以極為容易地把這個例子更改到Web應用程式場合下。
一、引言
在開發多人同時訪問的Web應用程式(其實不只這類程式)時,開發人員往往會在緩衝策略的設計上狠下功夫。這是因為,如果將這種環境下不常變更的資料臨時存放在應用程式伺服器或是使用者機器上的話,可以避免頻繁地往返訪問資料庫—而資料庫訪問是要符出昂貴代價的。以往在低版本的SQL Server(SQL Server 2000及以前版本)中,當需要提供資料庫內他人更新後的狀況時,主要是通過輪詢資料庫機制來提供對資料庫的不斷查詢;也可能是藉助於儲存於資料庫表格中的觸發器或者通過訊息佇列方式來達到通知目的。如今,作為微軟.NET 2.0戰略的重要組成部分之一的SQL Server 2005首次引入了主動式通知(Query Notification)機制。SQL Server 2005在所使用資料更改時,會主動地通知你。這種新的設計模式會讓你在系統資料未更新時,減輕浪費網路來回輪詢的負擔,從而有可能極大地提高系統效能。
本文中,我想通過一個簡單的Windows案頭表單樣本(基於SQL Server 2005的範例資料庫AdventureWorks)向讀者展示SQL Server 2005中這種新的主動地通知工作機理。
【另注】由於Visual Studio 2005的革命性變化,你可以極為容易地把這個例子更改到Web應用程式場合下。
二、SQL Server 2005中的主動式通知
主動式通知(也稱為“查詢通知”),是微軟ADO.NET和SQL Server小組協作開發的新成果。它允許你對資料進行緩衝並且僅在SQL Server中的資料發生變化時才發出通知;一旦接到通知,你就可以重新整理相應的緩衝區或者採取其它必要的措施。