我的老板要我解析一组存储在表中的查询计划,并确定每个计划中存在多少个具有无序预取的嵌套循环运算符。我只有大约 100 个查询计划,因此性能不是很重要。我尝试自己做,但很快就感到困惑,无法取得进展。
表的结构:
DROP TABLE IF EXISTS dbo.query_plans;
CREATE TABLE dbo.query_plans (
plan_name VARCHAR(100),
query_xml XML
);
我上传了 T-SQL 以将三个示例查询计划添加到pastebin上的表中。这是我正在寻找的输出:
╔═════════════╦════════════════╗
║ plan_name ║ OPERATOR_COUNT ║
╠═════════════╬════════════════╣
║ NO_PREFETCH ║ 0 ║
║ 1_PREFETCH ║ 1 ║
║ 2_PREFETCH ║ 2 ║
╚═════════════╩════════════════╝
我无法回答任何关于我为什么需要这样做的问题。谢谢!
这将完美地工作®
如果你愿意,你可以使用
p:
...并从 XQuery 表达式中省略命名空间前缀。