SQL Server 2019 开发者版性能慢

5
我们在生产环境中使用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 Server 2008 R2上运行特定的存储过程需要1分43秒,在SQL Server 2019上需要3分41秒...我运行了大约十次这个存储过程,结果相似(加/减几秒钟)。
在执行存储过程时,磁盘IO仅达到6MB/s的读写速度,CPU利用率对于SQL Server 2008 R2和SQL Server 2019均为约10%。
我重启了计算机并首先在2019实例上运行了存储过程,结果相同(我担心SQL Server 2008 R2已经占用了所有可用内存,但事实并非如此)。
所以我尝试了以下所有操作,每次在运行存储过程之间检查是否有任何改进:
- 重新启动 - 删除SQL Server 2008 R2和SQL Server 2019数据库并再次进行还原(只是为了确保数据集是相同的) - 关闭Windows Defender - 确保使用LocalSystem相同的系统帐户来启动SQL Server 2008 R2和SQL Server 2019引擎 - 在SQL Server 2019中将DB compat level从2008(10)更改为2019(15) - 在SQL Server 2019中重建主索引(担心2019无法充分利用使用2008 R2创建的索引) - 将SQL Server 2019 tempdb移动到与DB相同的驱动器(C:)
我唯一看到的区别是,我的SQL Server 2008 R2是默认实例,而SQL Server 2019是命名实例,但我甚至无法想象为什么会如此大幅影响性能。
难道开发人员版有某种性能惩罚吗?
我错过了什么?

4
首先,您错过了几乎11年的优化器开发。即使将兼容性级别降低,SQL Server 2019的优化器和引擎工作方式也非常不同。请注意,“不同”并不一定意味着“在所有情况下都更快”。不要首先关注硬件,比较执行计划!(至少2019版本提供了查询存储功能,使得收集和比较执行计划更加方便。) - Jeroen Mostert
1
如果我没记错,开发者版实际上与企业版相同,只是不被许可用于生产环境。所以使用它是正确的选择,是的。 - Rup
@Jeroen 感谢您的建议...我没有发现任何差异,除了一些小的“成本%”...我还收到了2个“缺失索引”消息,但它们也出现在SQL2008R2执行计划中。我将进一步探索这个问题。 - NickPR
2
你更新了统计数据吗?我会选择重建所有索引(你已经做了)并在恢复到新系统时更新所有统计信息。另外一件事:像你这样的问题更好的提问地点是https://dba.stackexchange.com(如果你确实提出了同样的问题,请删除这里的问题,因为在Stack Exchange上交叉发布是不被允许的)。 - TT.
1个回答

0
微软声称 SQL Server 的开发版本与企业版本相同,但当你试图使用真实测试时,你会发现有限制(考虑使用 HammerDb 进行测试)。此处有人面对相同的问题,在总结中说:

Enterprise 版本很快,Dev 版本非常慢。

问题是:为什么微软不提供明确的开发许可限制?我认为因为它只是用于开发,没有必要在开发中使用服务器上的所有处理器和内存,而且在生产中使用是非法的,因此没有必要提供这样的信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接