我正在尝试找出具有Probe Residual
.
需要了解以下内容
- 哪个物理和逻辑运算符有这个
Probe Residual
- 查询中该运算符 的Cost%是多少
- 关联执行计划
- 查询文本
以下是我的尝试——但我无法获取其他详细信息。如何获得这些细节?
注意:我使用的是 SQL Server 2012
WITH XMLNAMESPACES
(
DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan'
)
SELECT
DECP.cacheobjtype,
DECP.objtype,
DECP.plan_handle,
DEQP.objectid,
DEQP.query_plan,
DEST.[text]
FROM sys.dm_exec_cached_plans AS DECP
CROSS APPLY sys.dm_exec_query_plan(DECP.plan_handle) AS DEQP
CROSS APPLY sys.dm_exec_sql_text(DECP.plan_handle) AS DEST
WHERE
1 = DEQP.query_plan.exist(
'//RelOp[
@PhysicalOp = "Hash Match"
]')
探针残差示例
引用自以下 Grant Fritchey 和 Rob Farley 的博客/文章
你想要做的是在交叉应用中使用nodes() 方法(xml 数据类型)以切碎
RelOp
节点,这样你就可以使用value() 方法(xml 数据类型)来获取你正在寻找的属性值。您正在专门寻找
RelOp
具有节点的Hash/ProbeResidual
节点,因此您应该在nodes()
函数的 XQuery 参数的谓词中使用它。