比較異動資料擷取與變更追蹤
SQL Server 2008 導入了兩項追蹤功能,可協助應用程式判斷對資料庫中使用者資料表所做的 DML 變更 (插入、更新和刪除作業)。您必須先在應用程式中實作自訂追蹤機制,然後才能使用這些功能。這些自訂機制通常需要對追蹤資料表進行結構描述變更或使用觸發程序。不過,異動資料擷取和變更追蹤都不需要在來源進行任何結構描述變更或使用觸發程序。
異動資料擷取
異動資料擷取會透過擷取進行 DML 變更的事實以及變更的實際資料,提供使用者資料表的歷程記錄變更資訊。這些變更是使用讀取交易記錄而且對系統影響很小的非同步處理序擷取的。
如下圖所示,對使用者資料表所做的變更會擷取在對應的變更資料表中。這些變更資料表會提供一段時間內變更的歷程記錄檢視。SQL Server 所提供的異動資料擷取函數可讓您方便且有系統地取用變更資料。
變更追蹤
變更追蹤會擷取資料表中資料列變更的事實,但是不會擷取變更的資料。這項功能可讓應用程式使用直接從使用者資料表中取得的最新資料列資料,判斷已經變更的資料列。因此,與異動資料擷取相較之下,變更追蹤在它可回答的歷程記錄問題方面具有較多限制。不過,對於不需要歷程記錄資訊的應用程式而言,由於不會擷取變更的資料,因此儲存負擔會非常低。這項功能會使用同步追蹤機制來追蹤變更。其設計目的是要對 DML 作業產生最低負擔。
下圖將顯示使用變更追蹤所獲益的同步處理狀況。在此狀況中,應用程式需要下列資訊:自從資料表上次同步處理以來已經變更的所有資料表資料列,以及只有目前的資料列資料。由於使用了同步機制來追蹤變更,因此應用程式可以執行雙向同步處理,而且能夠可靠地偵測出可能已經發生的任何衝突。
異動資料擷取與變更追蹤之間的功能差異
下表將列出異動資料擷取與變更追蹤之間的功能差異。異動資料擷取中的追蹤機制包含從交易記錄中以非同步方式擷取變更,以便在 DML 作業之後可以使用變更。但是,在變更追蹤中,其追蹤機制包含以同步方式追蹤變更而且與 DML 並列執行,以便可以立即使用變更資訊。
功能 |
異動資料擷取 |
變更追縱 |
---|---|---|
追蹤的變更 |
|
|
DML 變更 |
是 |
是 |
追蹤的資訊 |
|
|
歷程記錄資料 |
是 |
否 |
資料行是否已變更 |
是 |
是 |
DML 類型 |
是 |
是 |