首页 > 数据库 >SQL Server 2022 中的 Tempdb 性能改进非常显著

SQL Server 2022 中的 Tempdb 性能改进非常显著

时间:2024-07-07 09:02:23浏览次数:18  
标签:Tempdb tempdb Server 争用 2022 SQL 页面

无论是在我的会话中还是在我写的博客中,Tempdb 始终是我的话题。然而,当谈到 SQL Server 2022 中引入的重大性能变化时,我从未如此兴奋过。他们解决了我们最大的性能瓶颈之一,即系统页面闩锁并发。

在 SQL Server 2019 中,他们通过引入内存优化的 tempdb 解决了所谓的元数据争用问题,即在更新跟踪表元数据的表时,属于系统对象的页面会占用页面闩锁。此外,产品团队还对对象分配争用进行了改进。这是对用于管理数据文件中空间分配的元数据页面的争用,这些页面称为页面可用空间 (PFS) 页面。创建或销毁临时表并在表中释放它们,例如sys.objvalues 。最后,对临时表缓存进行了更多改进,使我们能够更好地重用未更改的临时表。所有这些更改都提高了 tempdb 的性能,但仍然给我们留下了最大的瓶颈。这就是创建闩锁的方式——系统页面上的闩锁。

2022 年 SQL Server 的改进解决了这个问题,并改变了全局分配图 (GAM) 和(共享全局分配图)SGAM 页面闩锁的执行方式。他们不再通过更新闩锁来更新这些闩锁,而是使用共享闩锁来消除几乎所有的争用,如Microsoft发布的展示此更改效果的图像所示。

使用 SQL 2019 升级之前

使用 SQL 2022 升级后

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您可以清楚地看到其巨大的影响。更棒的是,这些新的增强功能将使我们所有人受益,尤其是那些默认情况下 tempdb 工作负载繁重的人。如果您只是升级到SQL Server 2022,您可以立即利用这些增强功能,而无需您做任何额外的工作或开销。结果至少可以说是惊人的。

标签:Tempdb,tempdb,Server,争用,2022,SQL,页面
From: https://blog.csdn.net/xiefeng240601/article/details/140225272

相关文章

  • C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
    目录一、代码解析:二、解决方案1、增加日志记录2、异步操作注意事项3、增加超时机制4、使用线程池5、使用信号量或事件6、监控数据库连接状态在C#程序操作SqlServer数据库的实际应用中,若异常就会抛出异常,我们还能找到异常的原因,进一步去解决;但偶发的不返回、也不抛......
  • P9668 [ICPC2022 Jinan R] Torch 题解
    思路考虑使用矩阵模拟这个过程。首先,我们可以设初值为:\[\begin{bmatrix}0&1\end{bmatrix}\]表示瘦子初始走\(0\)米,胖子初始走\(1\)米。考虑瘦子走一步。由于瘦子每走一步都不能超过胖子,我们可以使用\((\min,+)\)矩乘来维护这个性质。那么瘦子走一步是:\[\begin{bma......
  • MIT6.824-2022 分布式系统课程实验笔记 Lab 2A Raft-领导者选举(leader election)--xu
    Lab2A:Raft文章目录Lab2A:RaftLab1:MapReduceLab2:Raft实验解读Lab2B:日志复制我的代码实现(附带详细代码注释)前言Part2A:[leaderelection](中等难度)提示错误:实现细节(包含对于方法的解释如有错误大佬勿喷)结构体GetState()获取节点任期和角色sendAllRequestVote()发起投票......
  • MIT6.824-2022 分布式系统课程实验笔记 Lab 2B Raft-日志复制(Log Replication)--xunznu
    Part2B:LogReplication日志复制(困难)文章目录Part2B:LogReplication日志复制(困难)Lab1:MapReduceLab2:Raft实验解读Lab2A:领导者选举leaderelection我的代码实现(附带详细代码注释)提示:实现细节:1、commitIndex和lastApplied2、nextIndex和matchIndex3、Co......
  • return isPlainObject(res) || Array.isArray(res) ? observer(res, cb) : res; 这个
    这段代码主要是在实现一个深度观察者模式的部分逻辑,用于递归地处理对象和数组,以便在数据结构变化时触发回调。这里的关键是理解条件运算符和函数调用的执行顺序。让我们逐步分析:条件表达式的左侧:isPlainObject(res):这个函数检查res是否是一个纯对象(即普通的JavaScript对象......
  • 打卡信奥刷题(249)用Scratch图形化工具信奥P9735[普及组][COCI2022-2023#2] Tramvaji
    [COCI2022-2023#2]Tramvaji题目描述Patrik和Josip在坐电车。他们共坐了nnn站。除了上车的那一站,其他每一站到站时,都会发生以下事件中的一种:Patrik说:从上车到......
  • sqlserver数据库MDF文件修复
    针对SQLServer数据库的MDF文件修复,这是一个相对复杂的过程,具体方法取决于文件的损坏程度、是否有备份以及数据库的状态。以下是一些常见的修复方法:使用备份恢复这是最直接且最可靠的方法。如果你有数据库的备份,并且备份是在MDF文件损坏之前创建的,那么你可以通过还原备份来恢......
  • serverpod 基于dart 的flutter 下一代app 以及web server 开发框架
    serverpod按照官方的介绍是基于dart的flutter下一代app以及webserver开发框架包含的能力代码生成 可以辅助通过分析server端代码生成客户端代码,这样调用就比较方便了trpc就干了这类的事情世界一流的日志处理内置cache 内置cache可以减少数据库的开销简单方便使用......
  • IDEA运行时报错:Application Server was not connected before run configuration stop
    求求了,有没有大佬能看到呀,马上就考试了,运行不出来真的好烦躁无力呀,我在CSDN上看到了好多解决方法,但是我用过之后依旧没能解决。这是我的tomcat和jdk版本,版本应该没有问题吧,这也是老师发给我们的版本这是我的环境变量的配置; 这是我的tomca,jdk,以及IDEA的地址;  求......
  • 【漏洞复现】Geoserver XPath表达式注入致远程代码执行漏洞(CVE-2024-36401)
    0x01产品简介GeoServer是一个开源服务器,用于共享、处理和编辑地理空间数据。它支持多种地图和数据标准,使用户能够通过网络访问和操作地理信息系统(GIS)数据。0x02漏洞概述2024年7月,互联网上披露Geoserver表达式注入致远程代码执行漏洞(CVE-2024-36401),攻击者无需认证即可利......