1、系统页闩锁并发增强功能
对全局分配映射 (GAM) 页和共享全局分配映射 (SGAM) 页的并发更新可减少分配/解除分配数据页和区时的页闩锁争用。 这些增强功能适用于所有用户数据库,尤其有益于 tempdb 密集型工作负载。
2、缓冲池并行扫描
利用多个 CPU 内核,提高大内存计算机上缓冲池扫描操作的性能。
3、有序聚集列存储索引
有序聚集列存储索引 (CCI) 在索引生成器将数据压缩为索引段之前,对内存中的现有数据进行排序。 这有可能更有效地消除段,从而提高性能,因为要从磁盘读取的段数会减少。
4、改进了列存储段消除
所有列存储索引都受益于按数据类型增强的段消除。 数据类型选择可能会对列存储索引上查询的基于通用筛选谓词的查询性能产生重大影响。 此段消除适用于数值、日期和时间数据类型,以及小数位数小于或等于 2 的 datetimeoffset 数据类型。 从 SQL Server 2022 (16.x) 开始,段消除功能扩展到字符串、二进制文件、guid 数据类型以及用于小数位数大于 2 的 datetimeoffset 数据类型。
5、内存中 OLTP 管理
改进大型内存服务器中的内存管理,以减少内存不足的情况。
6、虚拟日志文件增长
在以前的 SQL Server 版本中,如果下一次增长超过当前日志大小的 1/8,并且增长小于 64MB,则创建四个 VLF。 在 SQL Server 2022 (16.x) 中,此行为略有不同。 如果增长小于或等于 64MB,并且超过当前日志大小的 1/8,则只创建一个 VLF。
7、线程管理
(1)ParallelRedoThreadPool:与所有具有重做工作的数据库共享的实例级线程池。 使用此项,每个数据库都可以受益于并行重做。 并行重做线程池允许多个线程同时处理一个数据库的日志记录 (并行)。 在以前的版本中,用于重做的可用线程数限制为 100。
(2)ParallelRedoBatchRedo:日志记录的重做是在一个闩锁下批量处理的,这样提高了速度。 这可以改进恢复、追赶重做和故障恢复重做。
8、减少缓冲池 I/O 膨胀
在从存储填充缓冲池时,减少单个页面膨胀为八个页面的情况(这会产生不必要的 I/O)。 通过预读机制,能以更有效率的方式填充缓冲池。 此更改是在 2022 SQL Server(所有版本)中引入的,并包含在 Azure SQL 数据库和 Azure SQL 托管实例中。
9、已增强旋转锁算法
旋转锁对多线程引擎中的一致性具有重要作用。 数据库引擎的内部调整可提高旋转锁的效率。 此更改是在 2022 SQL Server(所有版本)中引入的,并包含在 Azure SQL 数据库和 Azure SQL 托管实例中。
10、已改进虚拟日志文件 (VLF) 算法
虚拟文件日志 (VLF) 是物理事务日志的抽象形式。 若因日志增长而产生大量小型 VLF,可能会影响操作性能(例如恢复操作)。 我们已更改在部分日志增长场景中创建的 VLF 文件数的算法。
11、适用于事务日志文件增长事件的即时文件初始化
事务日志文件通常无法受益于即时文件初始化 (IFI)。 在 SQL Server 2022 (16.x)(所有版本)及之后的版本以及 Azure SQL Database 中,即时文件初始化可对不超过 64 MB 的事务日志增长事件提供帮助。 新数据库的默认自动增长大小增量为 64 MB。 大于 64 MB 的事务日志文件自动增长事件则无法利用即时文件初始化。