SQL Server 2017从零开始学(视频教学版)
上QQ阅读APP看书,第一时间看更新

1.3.1 数据库引擎中的新增功能

数据库引擎中的新增功能比较多,下面介绍几种常见的新增功能。

(1)引入了新的DMF sys.dm_db_log_stats,用于公开摘要级别特性和有关事务日志文件的信息,对于监视事务日志的运行状况很有用。

(2)SQL Server现在提供图形数据库功能,可对更具意义的面向关系的数据建模,包括用于创建节点和边界表的新CREATE TABLE语法以及用于查询的关键字MATCH。

(3)新一代的查询处理改进,将对应用程序工作负荷的运行时状况采用优化策略。对于这款适应性查询处理功能系列初版,开发者进行了3项新的改进,分别是批处理模式自适应联接、批处理模式内存授予反馈以及针对多语句表值函数的交错执行。

(4)自动优化是一种数据库功能,提供对潜在查询性能问题的深入了解,提出建议解决方案并自动解决已标识的问题。SQL Server中的自动优化功能会在检测到潜在性能问题时发出通知,并允许应用更正措施或数据库引擎自动解决性能问题。

(5)针对内存优化表上的非群集索引生成的性能增强,显著优化了数据库恢复期间MEMORY_OPTIMIZED表的bwtree(非群集)索引重新生成的性能。这一改进明显缩短了使用非群集索引时的数据库恢复时间。

(6)sys.dm_os_sys_info有三个新列:socket_count、cores_per_socket、numa_node_count。这在VM中运行服务器时非常有用,因为超出NUMA会导致过度使用主机,最终会转化为性能问题。

(7)在sys.dm_db_file_space_usage中引入了新列modified_extent_page_count,用于跟踪每个数据库文件中的差异更改。使用新列modified_extent_page_count可生成智能备份解决方案,如果数据库中发生更改的页面的百分比低于阈值(假设为70%~80%),此解决方案将执行差异备份,否则将执行完整数据库备份。

(8)引入了新的dmv sys.dm_tran_version_store_space_usage,用于跟踪每个数据库的版本存储使用情况。新dmv可用于监视tempdb获取版本存储使用情况,借此可根据每个数据库的版本存储使用情况要求预先规划tempdb的大小,不会产生任何性能开销或在生产数据库上运行此dmv的开销。

(9)引入了新的DMF sys.dm_db_log_info,用于向DBCC LOGINFO公开VLF等信息,以监视和发出警报,并避免由于VLF数量、VLF大小而导致的潜在事务日志问题或客户遇到的shrinkfile问题。

(10)改进了高端服务器上小型数据库的备份性能。在SQL Server中执行数据库备份的同时,备份进程会要求对缓冲池执行多次迭代以消耗当前进行的I/O。因此,备份时间不只是数据库大小的函数,还是活动缓冲池大小的函数。

(11)SQL Server 2017对备份进行了优化,可避免多次迭代缓冲池,进而动态提高中小型数据库的备份性能。当备份页面和备份IO占用的时间超过缓冲池迭代时,数据库大小将增加,此时性能提高的幅度会降低。

(12)查询存储现在可以跟踪等待统计摘要信息。在查询存储中按查询跟踪等待统计类别可体验下一级别的性能故障排除,还能提供工作负荷性能及其瓶颈的详细信息,同时保留查询存储的主要优势。