How does MS SQL Server decide when it can use "Parallelism" when executing queries? I recently posted another question here that, when looking at the actual execution plan used parallelism when I had an order by on the query and did not when I didn't have the order by. So, I'm wondering how it figures out when it can use "Parallelism" and when it can't.
1 Answer
SQL Server makes this decision based upon cost. If you execute 'sp_configure' (make sure advanced options are enabled) you will see an entry for 'cost threshold for parallelism'. If the optimizer estimates the cost to be greater than the run_value then your query will be executed in parallel.
If the ORDER BY clause in your example results in an increased cost, then the query will go parallel.
-
1You can find more info about the cost calculated for parallelism here: msdn.microsoft.com/en-us/library/ms178065.aspx and here technet.microsoft.com/en-us/magazine/dd320292.aspx .– MarianJan 18, 2011 at 18:15
-
Is there any way (or some tool, maybe) to see what is the value of the 'cost threshold for parallelism' for a query?– HeyJudeDec 26, 2016 at 19:26