我们在生产环境中使用SQL Server 2008 R2,我们正在考虑升级到SQL Server 2019。
因此,我只是在我的计算机上安装了SQL Server 2019开发人员版以对其进行测试,从生产服务器获取新备份并在计算机上进行还原。
我的计算机上还安装了SQL Server 2008 R2,因此我期待着一些并排的性能比较。
SQL Server 2008 R2 和 SQL Server 2019都安装在同一个 nvme 驱动器 (C:( 上,并且两个实例也位于同一个驱动器上,但是,SQL Server 2019 tempdb 位于另一个驱动器 (D:( 上。
在SQL Server2008 R2上运行特定的存储过程需要1:43s,在SQL Server 2019上需要3:41。我运行了大约十几次该存储过程,结果大致相同(加/减几秒钟(
在存储过程执行期间,磁盘 IO 的读取和写入速度勉强达到 6MB/s,SQL Server 2008 R2 和 SQL Server 2019 的 CPU 利用率约为 10%。
我重新启动了计算机并首先在 2019 实例上再次运行存储过程,结果相同(我担心 SQL Server 2008 R2 以某种方式占用了所有可用内存,但事实并非如此(
所以我尝试了所有这些,在两者之间再次运行存储过程以检查是否进行了任何改进:
- 重新 启动
- 删除了SQL Server 2008
- R2和SQL Server 2019数据库,并再次进行了还原(只是为了确保数据集完全相同(
- 我關閉了 Windows Defender
- 我确保SQL Server 2008 R2和SQL Server 2019使用相同的系统帐户
LocalSystem
来启动引擎
在SQL Server 2019 - 中,我将数据库
compat level
从2008(10(更改为2019(15(
在SQL Server 2019 - 中重建主索引(担心2019将无法充分利用使用2008 R2创建的索引(
- 已将 SQL Server 2019 tempdb 移至与数据库相同的驱动器 (C:((与在 SQL Server 2008 R2 上设置的相同(
我能看到的唯一区别是我的SQL Server 2008 R2是default instance
,而SQL Server 2019是named instance
,但我什至想不出为什么这会如此剧烈地影响性能。
开发人员版是否有某种性能损失???
我错过了什么?
Microsoft声称SQL Server的开发版本与企业版相同, 但是当你尝试使用真实的测试来测试它时,你会发现局限性,(考虑使用HammerDb进行测试( 这是有人面临同样的问题,它总结说:
企业是闪电,开发是狗慢。
问题是:为什么Microsoft没有为开发许可证提供明确的限制?我认为因为它仅用于开发,并且在开发中使用服务器上的所有处理器和内存是没有意义的,并且在生产中使用它是非法的,因此没有必要提供此类信息