SQL Server的数据更新跟踪测试

jinjazz 2010-04-17 11:50:08
加精
最近一个项目中需要监测SQLServer数据库中某些表的数据更新情况,于是做了一番POC测试和简单性能的评估.这里使用的是 SQLServer2008的更改跟踪.因为需求原因,没有考虑使用进一步的变更数据捕获.

测试内容在blog中
http://blog.csdn.net/jinjazz/archive/2010/04/17/5495955.aspx

大致脚本如下:
 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

/***

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 标识出来。



...全文
1072 103 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
103 条回复
切换为时间正序
请发表友善的回复…
发表回复
saizhang 2011-10-20
  • 打赏
  • 举报
回复
学习学习
zc_0101 2010-08-11
  • 打赏
  • 举报
回复
2008果然多了很多新东西……
xxmiaoyong126com 2010-07-30
  • 打赏
  • 举报
回复
2005能否实现呢
liyingjie5360 2010-07-26
  • 打赏
  • 举报
回复
学学,看看
祈祷 2010-07-20
  • 打赏
  • 举报
回复
不错,看看哦
zkj513703929 2010-07-19
  • 打赏
  • 举报
回复
学习一下.
304的的哥 2010-07-09
  • 打赏
  • 举报
回复
看看!!!!!!!
caomeng2010 2010-07-05
  • 打赏
  • 举报
回复
回復下
victory2688 2010-07-02
  • 打赏
  • 举报
回复
学习下
zjhlovewho 2010-06-30
  • 打赏
  • 举报
回复
太高深了。。看不懂。。顶了、
lowkey_06 2010-06-30
  • 打赏
  • 举报
回复
05有次函数不。
albert_sky 2010-06-13
  • 打赏
  • 举报
回复
学习了。。。
  • 打赏
  • 举报
回复
好多人都来看,我也一样,学习。
filec75 2010-06-11
  • 打赏
  • 举报
回复
友情up
zmydebug 2010-06-11
  • 打赏
  • 举报
回复
学习 学习
chenhj18 2010-06-10
  • 打赏
  • 举报
回复
学习了,我也在研究数据库
ljluck7687 2010-04-21
  • 打赏
  • 举报
回复
learn
ghost0912 2010-04-21
  • 打赏
  • 举报
回复
看不明白啊 老大给小弟我讲解讲解吧
linguangfei2007 2010-04-21
  • 打赏
  • 举报
回复
路过,路,路过,路过,
Mr_Nice 2010-04-21
  • 打赏
  • 举报
回复
路过,学习...
加载更多回复(83)

11,850

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧