从 SQL Server 2019 Standard 迁移到 Enterprise 后的性能下降 [已关闭]

Performance degradation after moving from SQL Server 2019 Standard to Enterprise [closed]

提问人:Dennis Jaheruddin 提问时间:11/13/2023 最后编辑:Dennis Jaheruddin 更新时间:11/13/2023 访问量:73

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

8天前关闭。

最近,我正在使用一个非常活跃的数据库,该数据库正在运行 SQL Server 2019 标准版。这个周末,它升级到了SQL Server 2019企业版(我没有参与,但如果需要,我可以询问该过程),突然性能要差得多。(每隔几分钟,图表就会显示查询需要更长的时间,并最终相互等待)。

实际的根本原因分析正在等待中,我意识到没有足够的信息来排除故障,但总的来说,我认为一定有可能的嫌疑人。

上下文

  • RDS 托管在 AWS 上
  • 基础新计算机是前一台计算机的两倍(CPU、内存)
  • 数据库的使用方式没有已知的变化,大约 1 天前升级后,指标也开始变坏。

在注意到问题后,检查所有设置,并将任何非默认设置(之前/之后)设置为与之前相同,以消除所有可能的变量。(即使是现在随着更多可用资源而自然会翻倍的东西)。这并没有产生足够的影响。

到目前为止的想法

  1. 是引擎吗?--> 可能不是,到目前为止,我所看到的任何地方似乎这些版本之间的引擎是相同的。
  2. 是配置吗?--> 我们试图在偏离默认值的地方将所有内容设置为相等,但是存在限制,因此我们不能排除这一点(例如,更改了默认值,新版本中的小错误,甚至可能没有出现在概述中的设置,例如传统基数估计)。
  3. 额外的功率是否触发了不同的瓶颈?--> 从理论上讲,拥有更多的工作能力可能会让我们遇到不同的瓶颈(例如#连接),尽管所有监控都表明我们离我们能想到的任何瓶颈都相去甚远。
  4. 新尺寸是否需要不同的设置?--> 进一步的搜索表明,例如,如果有更多的内核,可能需要更多的 TempDB,我可以想象更多这样的惊喜。
  5. 工作负载是否已更改 --> 也许直接转换的停机时间导致某些作业更改了其行为(例如,追赶逻辑存在一些问题,导致每次都输入一定数量的历史记录,而不是只输入一次)
  6. 企业中是否有额外的功能 --> 我们看到了更多跟踪的可能性,为了安全起见,除非默认情况下运行,否则现在一切都是关闭的。

问:从 SQL Server 2019 标准版迁移到 SQL Server 2019 Enterprise 时,性能显著下降的可能嫌疑人是什么

我意识到,如果你要解释如何解决所有问题,这个问题可能相当广泛,但只要解释一下要寻找什么样的事情,就希望是可以管理的。

sql-server 数据库 数据库性能 sql-server-2019

评论

1赞 Panagiotis Kanavos 11/13/2023
至于这可能意味着糟糕的查询可以比以前更快地占用过多的锁并相互阻塞,我怀疑这就是这里发生的事情。 默认情况下不使用并行性,而 Enterprise 使用并行性。在旧数据库中,繁重的查询必须按顺序执行,以单个 CPU 的速度锁定行。在 Enterprise 中,他们使用这些锁的速度要快得多。真正的解决方案是找到这些查询并修复它们,可能会改变所使用的策略。其他选项包括限制单个或所有查询的并行度twice as largeStandard
2赞 Panagiotis Kanavos 11/13/2023
正如我在之前的评论中所写的,这可能是由于并行执行未优化的查询。之前需要 10 分钟才能锁定整个表,现在可能在 1 分钟内锁定该表。我们无法猜测发生了什么
1赞 Panagiotis Kanavos 11/13/2023
它们不相等,因为版本不相等。如果是这样,此举将毫无意义。除非使用查询提示,否则标准不会在查询中使用并行性。企业会自动使用它们
1赞 BateTech 11/13/2023
磁盘也会对性能产生巨大影响。即使两者都是 SSD,在使用云托管环境时,不同的服务器大小也具有不同的 IO 限制,并且在某些情况下,磁盘可能会受到限制。因此,您可能希望确保不会发生磁盘限制以排除这种情况。
1赞 Charlieface 11/13/2023
您可能希望查看哪些实际查询需要很长时间,并对其进行调查。它可能很简单,比如一张表上的过时统计信息。您是如何迁移的,是进行备份/恢复,还是将所有内容编写为创建/插入?

答: 暂无答案