SQL2008的數據更新跟蹤測試 (監控數據表變化,可用於同步)


POC過程如下:

 


這里我們建立一個測試環境,模擬數據在 Insert , Update 和 Delete 情況下的跟蹤效果。

1 、測試腳本的准備,下面腳本建立一個新的數據庫環境,並作相應的跟蹤配置后向表中添加刪除更改數據。

 

Use master 

go 

/*** 

1 、建立測試環境:生成一個帶主鍵的測試表 T_Trace 

*/ 

if ( DB_ID ( 'db_Trace_test' ) is not null ) drop database db_Trace_test 

go 

Create DataBase db_Trace_test 

go 

use db_Trace_test 

go 

Create Table T_Trace ( id int not null , name varchar ( 100 )

CONSTRAINT [ PK_T_Trace ] PRIMARY KEY CLUSTERED ( [ id ] ASC )

)

go 

/*** 

2 、配置數據庫和表的更改跟蹤參數 

*/ 

ALTER DATABASE db_Trace_test SET 

    CHANGE_TRACKING = ON (

            AUTO_CLEANUP = ON ,            -- 打開自動清理選項 

            CHANGE_RETENTION = 1 HOURS    -- 數據保存期為時 

    );



ALTER TABLE dbo . T_Trace ENABLE CHANGE_TRACKING 

go 

/*** 

3 、向表中增加修改刪除數據 

*/ 

insert into T_Trace values ( 1 , ' 上海 ' ),( 2 , ' 北京 ' ),( 3 , ' 廣州 ' )

delete from T_Trace where id = 3 


update T_Trace set name = ' 天津 ' where id = 1

2 、跟蹤分析,測試腳本和效果如下

/*** 

4 、獲取更改過的數據 

*/ 

SELECT 

    CHG . Sys_Change_Version as 序 列 , id as 主鍵 , Sys_change_Operation as 操 作 

FROM CHANGETABLE ( CHANGES dbo . T_Trace , 0 ) CHG 

order by CHG . Sys_Change_Version 

/*
 
其中,測試腳本中函數 CHANGETABLE 的第二個參數 0 代表查詢開始的事物操作序列,這三條數據分別表示兩個插入( I )和一個刪除( D )操作並且用主鍵 ID 標識出來。

* 這里主鍵為 1 的數據標志為插入,是因為 Insert 和 Update 是在同一個跟蹤事務中查詢出來的。

3 、調整跟蹤范圍參數,我們從序列為 2 的操作開始跟蹤,這樣可以跟蹤到測試數據的 Update 語句:

SELECT

    CHG . Sys_Change_Version as 序列 , id as 主鍵 , Sys_change_Operation as 操作

FROM CHANGETABLE ( CHANGES dbo . T_Trace , 2) CHG


order by CHG . Sys_Change_Version


這個結果則表示,主鍵為 1 的數據數據執行過更新操作 (U)

1、硬件測試環境:

 

 

2 、軟件測試環境:

Windows 2008Server , SQLServer2008

3 、樣本數據:

       /--**--/

4 、測試結果:其中判斷和提取更新表示查詢時間,包含了返回到 SQLServer 客戶端的傳輸時間。

序列

源表數據

操作

判斷更新

提取更新

1

1000 條

Delete 語句刪除 1000 條

0 秒

2

0 條

Insert 語句插入 100 條

0 秒

0 秒

3

100 條

Insert 語句插入 1000 條

0 秒

0 秒

4

1100 條

Insert 語句插入 10000 條

0 秒

0 秒

5

11100 條

Insert 語句插入 100000 條

3 秒

4 秒

6

111100 條

Insert 語句插入 100000 條

6 秒

7 秒

7

211100 條

Insert 語句插入 100000 條

7 秒

11 秒

8

311100 條

Delete 語句刪除 100 條

0 秒

9

311100 條

Update 語句更新 100 條

0 秒

0 秒

10

311100 條

Update 語句更新 1000 條

0 秒

0 秒

11

311100 條

Update 語句更新 10000 條

0 秒

0 秒

5 、測試評估:

       在變更數據量萬級的情況下,可以很快地響應跟蹤結果並提取出所需要的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM