DaveWentzel.com            All Things Data

Blocking and non-blocking Operators

Every icon in a graphical execution plan can be considered either blocking or non-blocking.  This isn't blocking in the traditional "my transaction is blocking the system" sense.  In this case an operator is said to be non-blocking if it can take a single row of output from the previous operator, do it's thing, and pass it along the pipeline to the next operator.  A nested loops operator would be non-blocking.  A hashing operator would be blocking since probing cannot begin until the entire hash table is built. 

A blocking operator can only operate on an entire data set and the entire data set must be passed along to the next step.  A sort operator is an example of this.  


Execution Plans Home