XML 显示计划
更新日期: 2005 年 12 月 5 日
在 Microsoft SQL Server 2005 中,可以通过多种方法以 XML 格式生成显示计划执行计划输出。可以在计算机之间移动 XML 格式的显示计划输出,因此这些输出就可以呈现在任何一台计算机(甚至没有安装 SQL Server 的计算机)上。还可以使用 XML 技术(例如 XPath、XQuery、XSLT、SAX 及 DOM 等)以编程方式处理 XML 格式的显示计划输出。SQL Server 2005(包含支持 XPath 和 XQuery 的内置查询求值引擎)中支持 XML 显示计划处理功能。
您可以使用以下方法生成 XML 显示计划输出:
- 从 SQL Server Management Studio 中的查询编辑器工具栏中选择**“显示估计的执行计划”或“包括实际的执行计划”**
- 使用 Transact-SQL 显示计划的 SET 语句选项 SHOWPLAN_XML 和 STATISTICS XML
- 选择用于跟踪的 SQL Server Profiler事件类 Showplan XML、Showplan XML for Query Compile 和 Showplan XML Statistics Profile
- 使用 sys.dm_exec_query_plan 动态管理函数
除非您使用 sys.dm_exec_query_plan,否则对于所有这些方法都将以 nvarchar(max) 数据类型返回 XML 显示计划。使用此动态管理视图时,以 xml 数据类型返回 XML 显示计划。
可以从此 Microsoft 网站上找到显示计划的 XML 架构。
还可以从安装 SQL Server 2005 的目录下的以下位置找到显示计划的 XML 架构:
Microsoft SQL Server\90\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
注意: |
---|
如果查询优化器过早终止了查询优化,XML 显示计划输出中将返回 StmtSimple 元素的 StatementOptmEarlyAbortReason 属性。此属性可以显示的值包括 TimeOut、GoodEnoughPlanFound 和 MemoryLimitExceeded。如果为此属性返回的是 TimeOut 或 GoodEnoughPlanFound,则无需执行任何操作。返回的显示计划包含正确的结果。 如果为 StatementOptmEarlyAbortReason 属性返回的是 MemoryLimitExceeded,则生成的 XML 显示计划将仍是正确的,但可能不是最佳的。尝试以下方法之一来增加可用内存:1) 减少服务器上的负载。2) 增加 SQL Server 的可用内存。有关详细信息,请参阅管理大型数据库的内存。3) 检查用 sp_configure 设置的 max server memory 选项,如果其值过低,则增加该值。有关详细信息,请参阅服务器内存选项。 |
关于显示计划 XML 架构
显示计划 XML 架构的版本号包括两个部分,例如 m.n,其中 m 是主版本号,n 是次版本号。例如,“版本 2.5”。此版本号位于显示计划 XML 架构文档根元素中。例如:version="0.5"
显示计划 XML 架构的后向兼容性
主版本号增加后,新的 XML 显示计划输出可能无法按旧的架构进行验证。但次版本号增加没有影响。例如,如果使用 XML 架构 0.5 版生成 XML 显示计划输出,则该输出可以按显示计划 XML 架构 0.6 版进行验证。
XML 显示计划的编码
SQL Server 2005 以 Unicode 格式(发送的每个字符都以两个字节表示)将 XML 显示计划输出发送到客户端。编码规则如下:
- 如果 (char >= 0x0020 && char <= 0xD7FF) 或 (char == 0x0009) 或
(char == 0x000A) 或 (char == 0x000D) 或 (char >= 0xE000 && char <= 0xFFFD)
then 以两个字节发送字符,else 发送“?” - 制表符、换行符和回车符编码方式如下:
- \t 编码为“	”
- \n 编码为“
”
- \r 编码为“
”
将 XML 显示计划输出保存到文件
使用 SHOWPLAN_XML 或 STATISTICS XML Transact-SQL SET 语句生成显示计划输出后,可以将输出保存到扩展名为 .sqlplan 的文件。例如,MyXMLShowplan.sqlplan。然后就可以在 SQL Server Management Studio 中打开并查看这些 .sqlplan 文件。有关详细信息,请参阅如何以 XML 格式保存执行计划。
请参阅
参考
显示图形执行计划 (SQL Server Management Studio)
概念
通过使用 Showplan SET 选项显示执行计划 (Transact-SQL)
使用 SQL Server Profiler 事件类显示执行计划
显示计划安全性
其他资源
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2005 年 12 月 5 日 |
|