SQL Server:SQL Statistics 对象

Microsoft SQL Server 中的 SQLServer:SQL Statistics 对象提供计数器来监视编写和发送到 SQL Server 实例的请求类型。通过监视查询编写和重新编写的次数以及 SQL Server 实例收到的批数,可了解 SQL Server 处理用户查询的速度,以及查询优化器处理查询的效率。

编写时间在查询总时间中占到很大一部分。为节省编写开销,数据库引擎将编写过的查询计划保存在一个查询缓存中。缓存的目标是通过存储编写过的查询以便再次使用来减少编写,从而在将来执行查询时,不需重新编写它。但是,每个唯一的查询至少需要编写一次。以下因素可造成重新编写查询:

  • 架构更改,包括基本架构更改(例如在表中添加列或索引)和统计架构更改(例如在表中插入或删除很多行)。
  • 环境(SET 语句)改变。在 ANSI_PADDING 或 ANSI_NULLS 等会话设置中的更改,可能会导致查询的重新编写。

有关简单参数化和强制参数化的详细信息,请参阅 ALTER DATABASE (Transact-SQL)简单参数化

下面列出了 SQL Server SQL Statistics 计数器。

SQL Server SQL Statistics 计数器 说明

Auto-Param Attempts/sec

每秒的自动参数化尝试数。其总数应为失败的、安全的和不安全的自动参数化尝试之和。当 SQL Server 实例尝试通过将某些文字替换为参数来参数化 Transact-SQL 请求时,就会进行自动参数化,这样可以对多个相似的请求再次使用保存在缓存中的执行计划。注意,在 Microsoft SQL Server 2000 中,自动参数化即简单参数化。此计数器不包括强制参数化。

Batch Requests/sec

每秒收到的 Transact-SQL 命令批数。这一统计信息受所有约束(如 I/O、用户数、高速缓存大小、请求的复杂程度等)影响。批处理请求数值高意味着吞吐量很好。

Failed Auto-Params/sec

每秒自动参数化尝试失败次数。该值应很小。注意,在 SQL Server 2005 中,自动参数化也称为简单参数化。

Forced Parameterizations/sec

每秒成功执行的强制参数化次数。

Safe Auto-Params/sec

每秒安全自动参数化尝试次数。安全指确定保存在缓存中的执行计划可以在不同的相似 Transact-SQL 语句之间共享。SQL Server 进行多次自动参数化尝试,某些成为安全的,某些就失败了。注意,在 SQL Server 2005 中,自动参数化也称为简单参数化。它不包括强制参数化。

SQL Attention rate

每秒发出关注信号的数目。发出一次关注信号就是终止当前运行请求的一次客户端请求。

SQL Compilations/sec

每秒的 SQL 编写数。表示编写代码路径被进入的次数。包括 SQL Server 2005 中语句级重新编写导致的编写。当 SQL Server 用户活动稳定后,该值将达到稳定状态。

SQL Re-Compilations/sec

每秒语句重新编写的次数。计算语句重新编写被触发的次数。一般来说,这个数最好较小。在 SQL Server 2005 中,重新编写发生在语句级别,而不是发生在 Microsoft SQL Server 2000 中的批处理级别。因此,不能直接比较 SQL Server 2005 和早期版本中该计数器的值。

Unsafe Auto-Params/sec

每秒不安全的自动参数化尝试次数。例如,查询有某些特性会防止保存在缓存中的计划被共享。它们将被指定为不安全的。此计数器不计算强制参数化次数。

请参阅

参考

SQL Server Plan Cache 对象

其他资源

监视资源使用情况(系统监视器)

帮助和信息

获取 SQL Server 2005 帮助