SQLSERVER中的假脱机spool
SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老师写的《SQLSERVER企业级平台管理实践》里提到了一下假脱机 在SQLSERVER I/O问题的那一节 在性能监视器里,有一个计数器“worktables/sec” : 每秒创建的工作表数。例如,工作表可用于存储查询 假脱机 (query spool),LOB变量,XML变量,表变量,游标的临时结果 在《剖析SQLServer执行计划》里也提到了假脱机 (13) 有时查询优化器需要在tempdb数据库中建立临时工作表。如果是这样的话 就意味着图形执行计划中有标识成 Index Spool, Row Count Spool 或者 Table Spool 的图标。 任何时候,使用到工作表一般都会防碍到性能,因为需要额外的I/O开销来维护这个工作表。 之前本人也写过一篇文章: 对于索引假脱机的一点理解 写这篇文章的时候当时还是对假脱机一知半解 假脱机在MSDN中的执行计划中的逻辑运算符和物理运算符中提到了几个假脱机相关的运算符(详见本文最后面) Eager Spool Lazy Spool Index Spool (有时候也叫 Nonclustered Index Spool ) Row