我正在尝试(以图形方式)查看计划缓存中的大型查询计划,并且遇到了查询结果中 XML 被截断的问题。这是我正在使用的查询:
SELECT TOP 1
size_in_bytes,
query_plan
FROM sys.dm_exec_cached_plans cp
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) qp
ORDER BY size_in_bytes DESC
我已经在 SSMS 中尝试过,当我单击结果网格中的 XML 时,我得到Unable to show XML. Unexpected end of file when parsing Name has occurred. Line 1, position 2097154.
如果我复制并粘贴 XML,它确实被截断了。
我试过手动使用SET TEXTSIZE 2147483647
只是因为,但没有做任何事情。(我知道这是 SQL Native Client 提供程序的默认值,只是试图强制解决问题)。
我已经尝试通过SQLCMD
从 .sql 文件运行语句并输出到文本文件,但这给了我更少的东西。
我尝试过SQLCMD
交互式使用,:XML ON
但出现了这个错误:
<?MSSQLError HResult="0x80004005" Source="Microsoft XML Extensions to SQL Server" Description="No description provided"?>
计划为 157 MB。
有没有办法把完整的计划拿出来让我看到?
对于 157MB 的
Tools -> Options -> Query Results -> SQL Server -> Results to Grid
屏幕,您需要设置Maximum Characters Retrieved -> XML data
为无限制,如下所示。