我有一个具有分层表示的表,为了对树结构进行建模,使用了路径枚举。尽管查询计划有待优化并且查询本身很简单,但查询执行需要 4 秒。但是,当我删除排序时,查询速度很快,但我需要这种排序。
基本上,查询应该返回其孩子满足特定条件的相关顶级父母。
以下是查询和查询计划的链接:https://www.brentozar.com/pastetheplan/ ?id=S1njIuPRT
SELECT TOP 50 Id
FROM Site root
WHERE Archive = 288
AND TypeId IN( 1 )
AND EXISTS (SELECT 1
FROM Site ch
WHERE ch.[path] LIKE concat(root.Path, '%')
AND ch.Commercial = 0
AND ch.Archive = 288)
ORDER BY root.Score DESC