SQL Server数据文件增长检测(二)

2009-6-30   
   | |

导读:本部分介绍了测试结果中的前五个,并对测试做出了对比。

关键词:CPU SQL Server 数据库文件

正在加载数据... 【TechTarget中国原创】有两行作比较:百分比差异(<第二循环 >/<第一循环 > *100)和总数差异(<第一循环 > - <第二循环 >)。如果结果是正面的,那么说明第二循环性能更佳。相反的说明第一循环性能更佳。在每个对比表的最后,对比的平均只包括了三个循环的平均值。

【TechTarget中国原创】性能监控工具

  性能由SQL Profiler来监控。

  结果总结

  测试的结果由表格呈现,对比了两次循环中的CPU、读写和持续时间情况,第一次循环有文件增长而第二次没有。

  有两行作比较:百分比差异(<第二循环 >/<第一循环 > *100)和总数差异(<第一循环 > - <第二循环 >)。如果结果是正面的,那么说明第二循环性能更佳。相反的说明第一循环性能更佳。在每个对比表的最后,对比的平均只包括了三个循环的平均值。

  测试结果:

  测试1

  初始文件大小= 256,

  目标文件大小 = 8448,

  少量事务(1次一行),

  总行数: 8160,

  文件增长 1 MB

  目标文件8448比初始文件增长了33倍。

  我运行了几次以下的代码:

  运行以上代码后,SQL Profiler显示的结果:

  结果总结:

循环

步骤

CPU

持续时间 (ms)

1

文件增长

2031

69850

8222

13045

 

文件不增长

750

55234

8210

7999

 

% 改进

63.07237814

20.92483894

0.145949891

38.68148716

 

差异

1281

14616

12

5046

2

文件增长

1859

69853

8218

12735

 

文件不增长

1078

55533

8210

7230

 

% 改进

42.01183432

20.50019326

0.097347286

43.22732627

 

差异

781

14320

8

5505

3

文件增长

1985

69853

8221

13150

 

文件不增长

1360

55316

8210

8324

 

% 改进

31.4861461

20.81084563

0.133803674

36.69961977

 

差异

625

14537

11

4826

 

 

 

 

 

 

 

平均% 改进

45.52345285

20.74529261

0.125700284

39.5361444

 

平均差异

895.6666667

14491

10.33333333

5125.666667

  测试2

  初始文件大小 = 256,

  最终文件大小 = 34816,

  少量事务 (每次一行),

  总行数: 33373,

  文件增长1 MB

  现在我们来测试更多的插入,代码如下:

  结果总结:

循环

步骤

CPU

持续时间 (ms)

1

文件增长

6730

285208

33618

56148

 

文件不增长

4250

225591

33567

35003

 

% 改进

36.84992571

20.9029901

0.151704444

37.65940016

 

差异

2480

59617

51

21145

2

文件增长

7031

285223

33619

53373

 

文件不增长

4204

225364

33564

32472

 

% 改进

40.20765183

20.98673669

0.163597965

39.16024956

 

差异

2827

59859

55

20901

3

文件增长

6453

285278

33618

54189

 

文件不增长

3844

225362

33564

33530

 

% 改进

40.43080738

21.00267108

0.160628235

38.1239735

 

差异

2609

59916

54

20659

 

 

 

 

 

 

 

平均% 改进

39.16279497

20.96413262

0.158643548

38.31454107

 

平均差异

2638.666667

59797.33333

53.33333333

20901.66667

  测试3

  初始文件大小= 256,

  最终文件大小 = 34816,

  少量事务(每次一行),

  文件增长10 MB

  在这个测试中,代码同测试2一样,但数据库数据文件被设定为autogrow10MB。

  结果总结:

循环

步骤

CPU

持续时间 (ms)

1

文件增长

8907

283930

33588

41354

 

文件不增长

6297

225358

33565

37755

 

% 改进

29.30279555

20.62902828

0.068476837

8.702906611

 

差异

2610

58572

23

3599

2

文件增长

9078

283902

33588

46607

 

文件不增长

5578

216971

33560

41202

 

% 改进

38.55474774

23.57538869

0.083363106

11.59697041

 

差异

3500

66931

28

5405

3

文件增长

9016

283909

33587

52515

 

文件不增长

6015

225358

33565

38807

 

% 改进

33.28527063

20.62315742

0.065501533

26.10301819

 

差异

3001

58551

22

13708

 

 

 

 

 

 

 

平均% 改进

33.71427131

21.60919146

0.072447159

15.46763174

 

平均差异

3037

61351.33333

24.33333333

7570.666667

  测试4

  初始文件大小 = 33664,

  最终文件大小 = 66944,

  大量事务 (33373行),

  文件增长1 MB

  在这个测试中,我再次将ShrinkDB表中的行插入到ShrinkTable中,是大量的事务(一次33373行)。文件增长了1MB,我必须把T-Log增加到200MB才能在事务运行时不增长。我在测试大量事务如何影响文件增长。

  代码如下:

  结果总结:

循环

步骤

CPU

持续时间 (ms)

1

文件增长

3969

880471

33381

36097

 

文件不增长

3720

879426

33380

18104

 

% 改进

6.273620559

0.118686476

0.002995716

49.84624761

 

差异

249

1045

1

17993

2

文件增长

3750

880473

33381

35962

 

文件不增长

3578

879435

33380

20006

 

% 改进

4.586666667

0.117891179

0.002995716

44.36905623

 

差异

172

1038

1

15956

3

文件增长

3657

880471

33381

36544

 

文件不增长

3999

879422

33380

18802

 

% 改进

-9.35192781

0.119140778

0.002995716

48.54969352

 

差异

-342

1049

1

17742

 

 

 

 

 

 

 

平均% 改进

0.502786472

0.118572811

0.002995716

47.58833245

 

平均差异

26.33333333

1044

1

17230.33333

  测试5

  初始文件大小= 33664,

  最终文件大小 = 66944,

  大量事务(33373行),

  文件增长10 MB

  在这个测试中,代码通测试4的相同,但是文件autogrowth被设定为10MB。

  结果总结:

循环

步骤

CPU

持续时间 (ms)

1

文件增长

4016

879535

33381

23003

 

文件不增长

4016

879432

33380

21177

 

% 改进

0

0.011710734

0.002995716

7.938095031

 

差异

0

103

1

1826

2

文件增长

3672

879531

33381

22501

 

文件不增长

3673

879439

33380

19965

 

% 改进

-0.027233115

0.01046012

0.002995716

11.2706102

 

差异

-1

92

1

2536

3

文件增长

3798

879544

33381

22366

 

文件不增长

3782

879426

33380

18702

 

% 改进

0.421274355

0.013416043

0.002995716

16.38200841

 

差异

16

118

1

3664

 

 

 

 

 

 

 

平均% 改进

0.13134708

0.011862299

0.002995716

11.86357121

 

平均差异

5

104.3333333

1

2675.333333


 
查看全文
 
 
 
 
 

SQL Server性能与调优

 
做DBA的应该都知道,SQL Server的诸多元素当中,对于性能影响最大的就莫过于索引了,这一点几乎毫无争议。
 
您要基于成本和您希望调整的选择数量来选择您的索引优化工具。目前没有一个万能的解决方案,只有适合您企业的解决方案。
 
在一个数据库上创建索引会给数据库带来负面影响。当对表执行插入、更新和删除操作时,您就会看到这个性能的负面影响。
 
填充因数设置使SQL Server在创建、重建索引或清除索引碎片时会在数据页中保留一定的空余空间。但它也有一些负面影响,在本文中我们将对此进行讨论。
 
在创建索引时包含一个WHERE子句使您能够控制索引长度,同时创建一个只包含表中部分数据的过滤索引。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录