SQL Server 之 - 變更資料跟蹤 1

來源:互聯網
上載者:User

標籤:變更捕獲

某些應用程式(比如資料倉儲系統)十分依賴於源系統的變更資料識別功能,它們期望源系統能夠提供一種高效低識別變更資料的能力。在SQLServer 2008之前並沒有原生態的解決方案,開發人員不得不通過使用觸發器、時間戳記以及額外的表來實現該功能,在SQL Server2008之後,資料庫提供了兩種原生態的特性:Change Tracking(變更追蹤)及Change Data Capture(變更資料擷取)。

功能對比

簡單來講,所謂變更可以簡化為兩個問題:①變更有沒有發生以及變更的類型;②資料從什麼變更到了什麼。SQL Server變更追蹤的兩個功能的區別就在於對這兩個問題的回答。

Change Data Capture

變更時資料擷取功能同時回答了上面的兩個問題,這意味著當我們對一條資料做操作之後,它不僅標示說這條記錄被變更過來,而且同時會標示資料的變動曆史。從底層實現來講,該功能使用了一個非同步進程來讀取日誌表從而將對系統的影響降到最小。

如展示的,所有對某個使用者表所做的更改都會被儲存在相應的變動表中,這些變動表提供了變動的曆史視圖,記錄了隨時間變化而發生的更改:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/4F/9E/wKiom1RhxfqyCWZwAAD0Q2MTyWE283.jpg" title="1.png" alt="wKiom1RhxfqyCWZwAAD0Q2MTyWE283.jpg" />

Change Tracking

變更追蹤功能僅僅捕獲某條記錄被變更過,但是不會記錄資料的變動,這樣應用程式可以識別出那些記錄被更改過然後直接從基礎資料表中擷取最新的資料。這意味著變更追蹤功能無法回答一些曆史問題,但是這對於一些不需要知道曆史資訊僅需要知道變動是否發生的應用程式來說相當實用,因為該功能需要更少的儲存空間。資料庫實用一種非同步追蹤機制來追蹤變更。

區別

下表列出了這兩個特性的區別,CDC機制涉及到從交易記錄中捕獲變更,所以變更要在DML操作之後才能被捕獲到;ChangeTracking使用了內聯在DML操作中的非同步變更追蹤技術,所以變更資訊會立即可得。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4F/9E/wKiom1RhxgPzlBZYAAC_PtacC1s494.jpg" title="2.png" alt="wKiom1RhxgPzlBZYAAC_PtacC1s494.jpg" /> 

 


SQL Server 之 - 變更資料跟蹤 1

相關文章

聯繫我們

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