适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 中的 SQL 数据库
使 Microsoft SQL Server 执行 Transact-SQL 语句,并以定义完善的 XML 文档格式生成有关语句执行情况的详细信息。
语法
SET STATISTICS XML { ON | OFF }
备注
的 SETSET STATISTICS XML 设置是在执行或运行时设置,而不是在解析时。
当 SETSET STATISTICS XML 处于 ON(开启)时,SQL Server 执行后会返回每个语句的执行信息。 该选项设置为 ON 后,将返回有关所有后续 Transact-SQL 语句的信息,直到该选项设置为 OFF 为止。 注意,这 SETSET STATISTICS XML 不一定是批次中唯一的语句。
SET SET STATISTICS XML对于应用程序,如 SQLCMD 工具,返回输出为 NVarchar(Max),其中 XML 输出随后被其他工具用于显示和处理查询计划信息。
SET SET STATISTICS XML 返回信息为一组XML文档。 ON语句之后 SETSET STATISTICS XML 的每个语句都通过单一文档反映在输出中。 每个文档都包含该语句的文本,后面是执行步骤的详细信息。 此输出显示了诸如开销、访问索引以及所执行操作的类型、联接顺序、某个物理操作的执行次数、每个物理运算符生成的行数等运行时信息。
包含XML模式SETSET STATISTICS XML的文档在设置时会被复制到安装Microsoft SQL Server的计算机上的本地目录。 它可以在包含 SQL Server 安装文件的驱动器上找到,具体位置如下:
\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
显示计划架构也可从此网站中找到。
SET SET STATISTICS PROFILE 并且 SETSET STATISTICS XML 是彼此的对应角色。 前者生成文本输出;后者生成 XML 输出。 在未来版本的 SQL Server 中,新的查询执行计划信息将仅通过SETSET STATISTICS XML语句显示,而非语句本身SETSET STATISTICS PROFILE。
注意
如果在 SQL Server Management Studio 中选择“包含实际执行计划”,该SET选项不会生成 XML Showplan 输出。 在使用此SET选项前,请清除“包含实际执行计划”按钮。
权限
要使用 SETSET STATISTICS XML 和查看输出,用户必须拥有以下权限:
执行 Transact-SQL 语句的相应权限。
对包含 Transact-SQL 语句引用的对象的所有数据库有 SHOWPLAN 权限。
对于不产生 STATISTICS XML 结果集的 Transact-SQL 语句,只需执行 Transact-SQL 语句的适当权限。 对于 Transact-SQL STATISTICS XML 语句产生结果集,必须同时检查 Transact-SQL 语句执行权限和SHOWPLAN权限,否则 Transact-SQL 语句执行将中止,且不生成Showplan信息。
示例
接下来的两个语句使用这些SETSET STATISTICS XML设置来展示 SQL Server 如何分析和优化查询中索引的使用。 第一个查询在索引列上的 WHERE 子句中使用等于 (=) 比较运算符。 第二个查询在 WHERE 子句中使用 LIKE 运算符。 这将强制 SQL Server 使用聚集索引扫描并查找满足 WHERE 子句条件的数据。 EstimateRows 和 EstimatedTotalSubtreeCost 属性内用于第一个基于索引查询的值较小,这表示与非索引查询相比,该查询的处理速度要快得多,且使用的资源较少。
USE AdventureWorks2022;
GO
SET STATISTICS XML ON;
GO
-- First query.
SELECT BusinessEntityID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE JobTitle LIKE 'Production%';
GO
SET STATISTICS XML OFF;
GO