SQL Server等待统计信息解析:从基础到架构
1. 等待统计信息概述
等待统计信息是分析SQL Server性能相关问题和优化性能的重要工具,但很多数据库管理员和开发人员对其并不熟悉。这主要是因为其性质相对复杂、等待统计信息类型繁多,且很多类型缺乏详细文档。此外,等待统计信息与所分析的SQL Server直接相关,即使两台服务器硬件和数据库配置相同,也无法直接比较它们的等待统计信息,因为从硬件固件级别到客户端计算机上SQL Server Native Client的配置等每个配置选项都会对等待统计信息产生影响。
在讨论等待统计信息时,需要明确术语。实际上,我们只能比较特定等待类型的等待时间(即等待资源的总时间),而不是笼统地比较等待统计信息。
2. 等待统计信息的简要历史
SQL Server历史悠久,1989年首次发布,最初是为OS/2平台开发的。直到1995年发布的SQL Server 6.0,微软与Sybase合作开发SQL Server。1995年后,双方分道扬镳。如今,微软在2019年发布了SQL Server 2019,而SAP在2014年发布了SAP Sybase ASE 16并仍在维护。
在SQL Server 6.0到2019版本之间,发生了诸多变化,但等待统计信息始终是内部日志记录过程的重要组成部分。早期版本需要使用未公开的命令来访问等待统计信息,例如在SQL Server 6.5中使用DBCC命令查询。2005年,SQL Server将许多内部函数和命令转换为动态管理视图(DMVs),包括等待统计信息,这使得查询和分析信息变得更加容易。随着SQL Server的不断发布,新功能和配置选项的引入使不同等待类型的