blo*_*les 6 performance sql-server upgrade sql-server-2019
我们有一个 SQL Server 2012 服务器,它在(据我所知)相同的基础设施上远远优于 SQL Server 2019 数据库。我们在具有相同 SLA 的云平台上托管这两个数据库。两者都有 180GB RAM 和 16 个处理器。
但是,存在一些关键差异。
编辑:我刚刚意识到的另一个主要区别 - 一个是 Windows Server 2008,另一个是 Windows Server 2019。它也可能是服务器端设置......
所有 SQL 磁盘的分配单元大小设置为 64kb,SQL 具有能够控制文件大小本身的正确权限。服务器设置为高性能模式。还有什么我应该改变服务器端?
其他数据库设置没有改变,所以以下设置是2019年的默认设置,我相信:
我们所做的主要查询类型是执行更新和插入的大型复杂多连接查询,偶尔会从用户那里进行小选择。我们将大文件加载到数据库中,然后在大型查询中处理数据,通常一次一个。在这些大的“加载”之间,我们有用户在其他未加载/处理的数据库表上进行选择,为将来的加载/处理步骤做准备。通常,我们的处理性能降低了 30%-50%。我认为这是因为 MAXDOP 设置,但将其更改为 0 对一系列运行没有影响。
我们的主要症状是,当我们在 2019 年服务器忙于处理时尝试连接到它时,我们会遇到锁定超时,而 2012 年服务器仍在为连接提供服务,只是速度很慢。我正在考虑将服务器上的连接超时设置设置为较高的值,但是我怀疑我们仍然无法从服务器获得响应。就好像它甚至有点忙就会阻塞所有新连接。
还有其他我应该尝试的事情吗?这些数据库设置值得摆弄吗?
我可以进一步深入研究并开始查看 DMV,但是这似乎接近于“喜欢”的环境升级,性能大幅下降。在进行更大的调查之前,只是检查一下我没有其他应该检查的东西。
Dav*_*oft 11
我相信您刚刚发现为什么推荐的升级过程是升级您的数据库,启用查询存储,并在提高数据库兼容性级别之前进行测试。
如果您有很多计划回归,您可以在更高的数据库兼容性级别继续使用旧的基数估计器:
ALTER DATABASE SCOPED CONFIGURATION
SET LEGACY_CARDINALITY_ESTIMATION = ON;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2975 次 |
| 最近记录: |