获得' Table spool'真的很糟糕吗?在SQL Server执行计划?如果不是如何有利?我们真的想要摆脱Table Spool吗?
答案 0 :(得分:1)
根据MSDN:
Lazy Spool逻辑运算符将其输入中的每一行存储在a中 存储在tempdb数据库中的隐藏临时对象。如果是运营商 重绕(例如,通过嵌套循环运算符)但没有重新绑定 需要使用假脱机数据而不是重新扫描输入。 如果需要重新绑定,则丢弃假脱机数据和假脱机 通过重新扫描(反弹)输入来重建对象。
没有操作员而不是拥有操作员总是更好。上面描述了优点(没有重新扫描)。缺点是行必须存储在tempdb中(通常适合内存以便更快地访问)。
除非一切都适合记忆,否则通常有这个操作符并不坏。您必须共享执行计划/查询以获得更多数据化解释和可能的调整。