SQL Server 中的 SQLServer:SQL Statistics 对象提供计数器来监视编译和发送到 SQL Server 实例的请求类型。 通过监视查询编译和重新编译数以及由 SQL Server 的实例收到的批次数,可为您提供一个 SQL Server 以多快的速度处理用户查询以及查询优化器如何有效处理查询的指示。
编译是查询处理时间的重要组成部分。 为了节省编译成本,数据库引擎将编译的查询计划保存在查询缓存中。 缓存的目的是通过存储已编译的查询来减少编译,以便以后重复使用,从而在以后执行时结束重新编译查询的要求。 但是,每个唯一查询必须至少编译一次。 查询重新编译可能是由以下因素引起的:
架构更改,包括基本架构更改,例如向表添加列或索引,或统计信息架构更改,例如插入或删除表中大量行。
环境(SET 语句)更改。 会话设置(如ANSI_PADDING或ANSI_NULLS)的更改可能会导致重新编译查询。
有关简单参数化和强制参数化的详细信息,请参阅 ALTER DATABASE (Transact-SQL)。
这些是 SQL Server SQL 统计信息 计数器。
SQL Server SQL 统计信息计数器 | DESCRIPTION |
---|---|
自动参数尝试次数/秒 | 每秒自动参数化尝试次数。 总计应为失败、安全且不安全的自动参数化的总和。 当 SQL Server 实例尝试将某些文本替换为参数来参数化 Transact-SQL 请求时,将发生自动参数化,以便可以跨多个类似请求重复使用生成的缓存执行计划。 请注意,在较新版本的 SQL Server 中,自动参数化也称为简单参数化。 此计数器不包括强制参数化。 |
批处理请求/秒 | 每秒接收的 Transact-SQL 命令批处理数。 此统计信息受所有约束(例如 I/O、用户数、缓存大小、请求复杂性等)的影响。 高批处理请求意味着良好的吞吐量。 |
自动化参数故障次数/秒 | 每秒失败的自动参数化尝试次数。 这应该很小。 请注意,在更高版本的 SQL Server 中,自动参数化也称为简单参数化。 |
强制参数化/秒 | 每秒强制参数化的成功次数 |
指导计划执行次数/秒 | 使用计划指南生成查询计划的每秒计划执行次数。 |
错误计划执行数/秒 | 计划生成期间无法执行计划指南时,每秒执行计划的次数。 计划指南被忽略,正常编译用于生成执行的计划。 |
安全自动参数数/秒 | 每秒安全自动参数化尝试次数。 安全是指确定缓存的执行计划可以在不同类似 Transact-SQL 语句之间共享。 SQL Server 进行许多自动参数化尝试,其中一些尝试是安全的,而另一些则失败。 请注意,在更高版本的 SQL Server 中,自动参数化也称为简单参数化。 这不包括强制参数化。 |
SQL 关注率 | 每秒注意次数。 注意的是客户端请求结束当前正在运行的请求。 |
SQL 编译数/秒 | 每秒 SQL 编译数。 指示输入编译代码路径的次数。 包括由 SQL Server 中的语句级重新编译引起的编译。 SQL Server 用户活动稳定后,此值将达到稳定状态。 |
SQL 重新编译数/秒 | 每秒语句重新编译的次数。 计算语句重新编译被触发的次数。 通常,你希望重新编译发生的频率较低。 |
不安全的自动参数数/秒 | 每秒不安全的自动参数化尝试次数。 例如,查询具有阻止共享缓存计划的某些特征。 这些值被指定为不安全。 这不计算强制参数化的数量。 |