SET STATISTICS XML (Transact-SQL)

更新日期: 2005 年 12 月 5 日

使 Microsoft SQL Server 执行 Transact-SQL 语句,并以定义完善的 XML 文档格式生成有关语句执行情况的详细信息。

主题链接图标Transact-SQL 语法约定

语法

SET STATISTICS XML { ON | OFF }

备注

SET STATISTICS XML 的设置是在执行或运行时设置的,而不是在分析时设置的。

当 SET STATISTICS XML 为 ON 时,SQL Server 将在执行每条语句后返回该语句的执行信息。该选项设置为 ON 后,将返回有关所有后续 Transact-SQL 语句的信息,直到该选项设置为 OFF 为止。请注意,SET STATISTICS XML 不必是批处理中的唯一语句。

SET STATISTICS XML 将为应用程序(如 sqlcmd 实用工具)返回 nvarchar(max) 类型的输出,其中的 XML 输出随后将由其他工具用于显示和处理查询计划信息。

SET STATISTICS XML 返回的信息是一组 XML 文档。SET STATISTICS XML ON 语句后面的每条语句都反映在输出的单个文档中。每个文档都包含该语句的文本,后面是执行步骤的详细信息。此输出显示了诸如开销、访问索引以及所执行操作的类型、联接顺序、某个物理操作的执行次数、每个物理运算符生成的行数等运行时信息。

在安装过程中,将把包含 XML 架构(该架构用于 SET STATISTICS XML 生成的 XML 输出)的文档复制到安装了 Microsoft SQL Server 2005 的计算机的本地目录中。它可以在包含 SQL Server 安装文件的驱动器上找到,具体位置如下:

\Microsoft SQL Server\90\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

显示计划架构也可从此网站中找到。

SET STATISTICS PROFILE 和 SET STATISTICS XML 彼此互为对等物。前者生成文本输出;后者生成 XML 输出。在 SQL Server 的未来版本中,新的查询执行计划信息将只通过 SET STATISTICS XML 语句显示,而不通过 SET STATISTICS PROFILE 语句显示。

ms176107.note(zh-cn,SQL.90).gif注意:
如果在 SQL Server Management Studio 中选定了“包括实际的执行计划”,则该 SET 选项不会生成 XML 显示计划输出。请在使用该 SET 选项之前清除“包括实际的执行计划”按钮。

权限

若要使用 SET STATISTICS XML 并查看输出,用户必须具有以下权限:

  • 执行 Transact-SQL 语句的适当权限。
  • 对包含 Transact-SQL 语句所引用对象的所有数据库的 SHOWPLAN 权限。

对于不生成 STATISTICS XML 结果集的 Transact-SQL 语句,只需要具有执行 Transact-SQL 语句的相应权限。对于生成 STATISTICS XML 结果集的 Transact-SQL 语句,则要求对 Transact-SQL 语句执行权限和 SHOWPLAN 权限的检查必须成功,否则将中止 Transact-SQL 语句的执行,并且不生成任何 Showplan 信息。

有关详细信息,请参阅 显示计划安全性SHOWPLAN 权限和 Transact-SQL 批处理

示例

下面两条语句使用 SET STATISTICS XML 设置,显示 SQL Server 在查询内对索引进行分析和优化的方法。第一个查询在索引列上的 WHERE 子句中使用等于 (=) 比较运算符。第二个查询在 WHERE 子句中使用 LIKE 运算符。这将强制 SQL Server 使用聚集索引扫描并查找满足 WHERE 子句条件的数据。EstimateRowsEstimatedTotalSubtreeCost 属性内用于第一个基于索引的查询的值较小,这表示与非索引查询相比,该查询的处理速度要快得多,且使用的资源较少。

USE AdventureWorks;
GO
SET STATISTICS XML ON;
GO
-- First query.
SELECT EmployeeID 
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT EmployeeID, Title 
FROM HumanResources.Employee
WHERE Title LIKE 'Production%';
GO
SET STATISTICS XML OFF;
GO

请参阅

参考

SET SHOWPLAN_XML (Transact-SQL)

其他资源

sqlcmd 实用工具
分析查询
用于生成显示计划的 Transact-SQL 语句
通过使用 Showplan SET 选项显示执行计划 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2005 年 12 月 5 日

已更改的内容:
  • 更改了显示计划 XML 架构的安装位置。