Spools

Spools are expensive operators, but they are introduced in a query plan as an optimization, typically to compensate for inadequate indexes, or to optimize otherwise complex queries by significantly speeding up the overall runtime of a query. A Spool reads data and saves it in a worktable in TempDB. This process is used whenever the Query Optimizer knows that the density of a column is high (therefore having low selectivity) and the intermediate result is very complex to calculate. If this is the case, SQL Server computes the result once and stores it in a Spool so it can be searched later in the execution. Spools only exist while the query is being executed.

Conceptually, all physical Spool operators function the same way:

  1. Read all ...

Get Learn T-SQL Querying now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.