首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

深入剖析 SQL Server 2005 查詢通知機制:基礎篇

     編輯:關於SqlServer

摘要

在本系列文章中,我們將深入探討如何將 .NET 2.0 與 SQL Server 2005 的查詢通知功能結合,讓應用程式在關鍵資料異動時即時收到通知,從而消除重複輪詢資料庫的需求,提升系統效能。

一、引言:資料快取的困境

資料庫應用程式常面臨的一大難題是「陳舊資料」的更新。以典型的電子商務網站為例,產品分類與列表極少變動,但每次使用者瀏覽都必須重複查詢資料庫,造成資源浪費。快取技術雖能緩解此問題,但快取失效的時機極難把握:若設定固定間隔刷新,資料在刷新後若立即異動,便會在下一次刷新前長期處於過時狀態。

二、查詢通知:主動通知取代被動輪詢

SQL Server 2005 引入的 Service Broker 使查詢通知成為可能。Service Broker 將佇列機制導入資料庫,透過佇列與服務通訊,當資料異動時,觸發佇列項目,經由服務將通知送回發起請求的應用程式。應用程式收到通知後,即可更新快取或採取後續動作。

SQL Server Management Studio 中的 Service Broker 佇列與服務

三、.NET 與 Service Broker 的整合運作

當查詢附加特定旗標送往 SQL Server 時,伺服器除回傳結果集外,還會將查詢及請求者註冊至 Service Broker。一旦結果集中任一資料列異動,相關佇列即被觸發,透過服務將通知推送回客戶端。在 .NET 端,System.Data.SqlClient.SqlDependency 是最常用的高階實作;ASP.NET 2.0 則透過 SqlCacheDependency 與 <%@ OutputCache %> 指令,讓網頁快取能依賴資料庫資料自動失效,極大簡化開發工作。

注意: 查詢通知允許你快取資料,並在 SQL Server 資料異動時主動通知你。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved