性能监控工具 性能由SQL Profiler来监控。 结果总结 测试的结果由表格呈现,对比了两次循环中的CPU、读写和持续时间情况,第一次循环有文件增长而第二次没有。 有两行作比较:百分比差异(<第二循环 >/<第一循环 > *100)和总数差异(<第一循环 > – <第二循环 >)。如果结果是正面的,那么说明第二循环性能更佳。
相反的说明第一循环性能更佳。在每个对比表的最后,对比的平均只包括了三个循环的平均值。 测试结果: 测试1 初始文件大小= 256, 目标文件大小 = 8448, 少量事务(1……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
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高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。