SQL2008的数据更新跟踪测试
来源:互联网 发布:英语短语词组软件 编辑:程序博客网 时间:2024/05/16 01:01
最近一个项目中需要监测SQLServer数据库中某些表的数据更新情况,于是做了一番POC测试和简单性能的评估.这里使用的是 SQLServer2008的更改跟踪.因为需求原因,没有考虑使用进一步的变更数据捕获.
POC过程如下:
这里我们建立一个测试环境,模拟数据在 Insert , Update 和 Delete 情况下的跟踪效果。
1 、测试脚本的准备,下面脚本建立一个新的数据库环境,并作相应的跟踪配置后向表中添加删除更改数据。
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
/*
* 这里主键为 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
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 、测试评估:
在变更数据量万级的情况下,可以很快地响应跟踪结果并提取出所需要的数据。- SQL2008的数据更新跟踪测试
- SQL2008的数据更新跟踪测试
- SQL2008的数据更新跟踪测试
- SQL2008的数据更新跟踪测试
- SQL2008的数据更新跟踪测试
- 跟踪法测试(灰盒测试):跟踪程序的运行过程,特别是输入数据的流转过程
- oralce 查询跟踪的更新
- 程序的测试与跟踪
- sql2008中“阻止保存要求更新创建表的更改”
- sql2008导出数据
- sql2008生成数据字典
- 数据日志删除 sql2008
- sql2008从数据库中导出某张表的数据
- SQL2008数据库日志已满时删除表中数据的方法
- excel导入至sql2008语句的数据导入问题
- SQL2008 清空数据库中所有表数据的方法
- 针对SQL2008全文索引查不到数据的…
- 更新UI的测试
- 一些常用的linux命令
- linux嵌入式资源
- 修正网页中div或ul或其他块元素在IE6,IE7,FF,Opera中显示不同的杀手锏
- 父子对话框 变量及函数的调用
- 《FRINGE》の近期看书计划
- SQL2008的数据更新跟踪测试
- 1330 Nearest Common Ancestors //LCA
- charindex代替like并非"更快更全面"
- 写一个对象集合排序的类
- ASCII压缩算法实现
- C++结构体 应用
- jsp页面的数据导入Excel中并下载Excel
- Java从入门到精通 - Java数字处理类
- socket的一个实例