SQL Server执行计划中的表假脱机

时间:2016-08-31 10:25:42

标签: sql-server

获得' Table spool'真的很糟糕吗?在SQL Server执行计划?如果不是如何有利?我们真的想要摆脱Table Spool吗?

1 个答案:

答案 0 :(得分:1)

根据MSDN

  

Lazy Spool逻辑运算符将其输入中的每一行存储在a中   存储在tempdb数据库中的隐藏临时对象。如果是运营商   重绕(例如,通过嵌套循环运算符)但没有重新绑定   需要使用假脱机数据而不是重新扫描输入。   如果需要重新绑定,则丢弃假脱机数据和假脱机   通过重新扫描(反弹)输入来重建对象。

没有操作员而不是拥有操作员总是更好。上面描述了优点(没有重新扫描)。缺点是行必须存储在tempdb中(通常适合内存以便更快地访问)。

除非一切都适合记忆,否则通常有这个操作符并不坏。您必须共享执行计划/查询以获得更多数据化解释和可能的调整。