SQL Server 之 - 變更追蹤 2

來源:互聯網
上載者:User

標籤:變更追蹤

正如前面文章說道的,SQLServer 2008提供了兩種實現變更追蹤的功能,本部分主要討論的是Change Tracking功能。

啟用ChangeTracking

我們可以通過如下的步驟來啟用和使用ChangeTracking功能:

1. 在資料庫層級啟用Change Tracking

使用下面的語句在資料庫上啟用該功能(或者在SSMS的屬性彈出框中啟用),它的兩個參數分別表示變更資訊的存活時間以及是否啟用自動清除變更資訊任務:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4F/D5/wKiom1Rh3SuCVY0NAABdRBsT41s660.jpg" title="1.png" alt="wKiom1Rh3SuCVY0NAABdRBsT41s660.jpg" />

2. 在需要的表上啟用Change Tracking

我們需要在每個想追蹤變更的表上執行啟用(需要注意的是,表必須具有主鍵才可以使用變更追蹤功能),可以使用如下的語句或使用表屬性彈出框:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4F/D4/wKioL1Rh3Z_x1I2OAABZozSub8A008.jpg" title="2.png" alt="wKioL1Rh3Z_x1I2OAABZozSub8A008.jpg" />

其中參數TRACK_COLUMNS_UPDATED預設為False,因為維護列更新資訊需要額外的儲存開銷。

3. 理解Change Tracking帶來的開銷

開啟了Change Tracking會對資料庫操作產生一些影響,我們可以從管理操作、DML操作及儲存方面來查看它們具體的影響:

  1. 管理操作

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4F/D4/wKioL1Rh3a6gQyy2AAHiFOf1mg4612.jpg" title="3.png" alt="wKioL1Rh3a6gQyy2AAHiFOf1mg4612.jpg" />

  1. DML操作

  2. 儲存

使用ChangeTracking

在啟用了該功能之後就到了使用它的時候了,在啟用了該功能的資料庫上會有一個版本計數器,然後每當在啟用了變更追蹤的表上執行DML操作的時候都會產生一個新的Version號與之關聯,在某種程度上變更追蹤的版本號碼與rowversion資料類型有些相似。

現在我們可以很容易的想象如何使用變更追蹤的:

  1. 首先應用程式從資料庫做一次初始資料的載入

  2. 然後擷取當時的Version號並記錄一下以作為下次資料幫浦的起始點

  3. 然後當下次應用程式需要從資料庫做增量資料幫浦的時候,提供上次記錄下來的Version號並僅僅載入新的改動

  4. 如果很不幸的,應用程式在上次增量完成之後到下次增量抽取之間變動資訊被清除了,那麼應用程式不得不重新做一次全資料載入以防止資料不一致

資料庫提供了一下的函數來實現上面提到的功能:

1.      CHANGE_TRACKING_CURRENT_VERSION()

擷取當下最新的變更的Version號

2.      CHANGETABLE(CHANGES…)

該行集合函式返回變更資訊,它接受表明及Version號作為參數,然後從內部追蹤變更資訊的表中為該使用者表返回從提供了Version號之後發生的所有變更資訊

3.      CHANGE_TRACKING_MIN_VALID_VERSION()

該函數需要一個表的object_id,然後返回當前資料庫中最小的有效Version號。應用程式在每次做增量抽取之前,應該判斷上次載入的Version號是否小於當前有效Version號,如果是的話意味著有些變更資訊因為某些原因已經被清除掉了,這時候必須做一次全資料載入

 

 

 


SQL Server 之 - 變更追蹤 2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.