Olg*_*ykh 14 performance sql-server sql-server-2012 sql-server-2016
我在同一台服务器上有两个 SQL Server 实例:
sp_configure 结果在两个实例上相同(新的 2016 选项除外)。
我在同一个磁盘文件夹上的两个实例上创建了新数据库。自动生长参数相同。
自动创建和自动更新统计选项被关闭。
然后我做了一个测试,将 10000 次插入到一个堆中:
set nocount on
go
create table dbo.TestInsert ( i int not null, s varchar(50) not null )
declare @d1 datetime, @d2 datetime, @i int
set @d1 = getdate()
set @i = 1
while @i <= 10000
begin
insert into dbo.TestInsert ( i, s ) select @i, replicate( 'a', 50 )
set @i = @i + 1
end
set @d2 = getdate()
select datediff(ms, @d1, @d2)
drop table dbo.TestInsert
Run Code Online (Sandbox Code Playgroud)
结果 1
平均测试时间
因此,2016 年大约慢了 11%。
结果 2
来自 sys.dm_io_virtual_file_stats 的事务日志增长为:
在这些测试期间,两个实例都会启动。但是一个测试每次只在一个实例上运行。我为每个实例分配了 8Gb RAM。查询计划是相同的。在自己的机器上运行每个实例会很有趣。但可能一台机器更好,因为这里我们没有硬件和环境隐藏的差异。
问题
显然,在同一服务器中拥有完全相同的版本是非常困难的,但是......我希望我的结果会对您有所帮助。我有两台配置为 Windows Server 2012 R2 Standard 的不同计算机。不幸的是,他们没有相同的硬件,但相似:
机器 1 (SQL Server 2016)
机器 2 (SQL Server 2012)
我在两台机器上运行了您提供的相同脚本 5 次,并获得了以下平均值:
您获得的结果几乎相反。无论如何,正如您所看到的,我的 2012 年机器具有更好的处理器,但通常显示差异的硬盘是相同的。因此,即使 2012 年有更好的资源,对我来说还是有点慢。
(抱歉,请再次检查,我的第一个版本有一些重要的勘误)
| 归档时间: |
|
| 查看次数: |
2307 次 |
| 最近记录: |