<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www2.sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx</link><description>Welcome back for the second part of Parallelism Week here at SQL University . Get your pencils ready, and make sure to raise your hand if you have a question. Last time we covered the necessary background material to help you understand how the SQL Server</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>re: SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25556</link><pubDate>Wed, 26 May 2010 12:52:51 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25556</guid><dc:creator>jamiet</dc:creator><description>&lt;p&gt;Great stuff Adam, thanks for sharing this.&lt;/p&gt;
</description></item><item><title>re: SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25561</link><pubDate>Wed, 26 May 2010 14:21:29 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25561</guid><dc:creator>unclebiguns</dc:creator><description>&lt;p&gt;Enjoying the series. &amp;nbsp;Learning a lot about how parallelism works. &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25565</link><pubDate>Wed, 26 May 2010 16:17:38 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25565</guid><dc:creator>Paul White</dc:creator><description>&lt;p&gt;Hey Adam,&lt;/p&gt;
&lt;p&gt;Three things:&lt;/p&gt;
&lt;p&gt;1. &amp;nbsp;It's possible to read your description of repartitioning as saying that some schemes pass rows around, while others pass pages. &amp;nbsp;The producer threads within an exchange iterator always push 'packets' of rows to consumer threads, regardless of the partitioning type (broadcast, round-robin, demand, hash).&lt;/p&gt;
&lt;p&gt;2. &amp;nbsp;Parallel scan does not use broadcast partitioning. &amp;nbsp;It starts by threads requesting a row range or page set from a parallel page supplier in the storage engine. &amp;nbsp;Once a thread finishes its initial work, it requests another set. &amp;nbsp;This means that different threads can process a different number of rows (as you saw), which would not be possible if a strict round-robin scheme were used. &amp;nbsp;Parallel scan uses this demand-based scheme to improve plan resilience in the face of data skew and/or scheduler load imbalances.&lt;/p&gt;
&lt;p&gt;3. &amp;nbsp;To be fair to parallel hash join, I would have mentioned that a hash partitioning distribution scheme results in a number (DOP) of hash tables which overall use the same amount of memory regardless of DOP. &amp;nbsp;The other possibility for parallel hash join (broadcast) results in a memory grant requirement which is proportional to DOP.&lt;/p&gt;
&lt;p&gt;Paul&lt;/p&gt;
</description></item><item><title>re: SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25570</link><pubDate>Wed, 26 May 2010 16:44:29 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25570</guid><dc:creator>Adam Machanic</dc:creator><description>&lt;p&gt;Hi Paul,&lt;/p&gt;
&lt;p&gt;Thanks for the feedback. I'll go back through later and clarify some of the text based on your comments (1) and (2), in addition to a quick re-read of some of Craig Freedman's material (should have done that BEFORE writing this stuff).&lt;/p&gt;
&lt;p&gt;As for your comment (3), workspace memory grants are an additional complexity wrinkle (and quite a complex one at that) and I think would simply confuse things at this point in the series. &lt;/p&gt;</description></item><item><title>re: SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25571</link><pubDate>Wed, 26 May 2010 16:51:21 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25571</guid><dc:creator>Paul White</dc:creator><description>&lt;p&gt;Cheers Adam,&lt;/p&gt;
&lt;p&gt;I see what you mean about point 3, but people get so down on parallelism already...I felt sorry for it I guess :)&lt;/p&gt;
&lt;p&gt;Paul&lt;/p&gt;
</description></item><item><title>re: SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25581</link><pubDate>Wed, 26 May 2010 20:07:46 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25581</guid><dc:creator>James Luetkehoelter</dc:creator><description>&lt;p&gt;Very nice stuff Adam!&lt;/p&gt;
</description></item><item><title>re: SQL University: Parallelism Week - Part 2, Query Processing</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25623</link><pubDate>Thu, 27 May 2010 13:27:36 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25623</guid><dc:creator>Adam Belebczuk</dc:creator><description>&lt;p&gt;Thanks for the awesome info Adam &amp;amp; Paul! :-)&lt;/p&gt;
</description></item><item><title>SQL University: Parallelism Week - Part 3, Settings and Options</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#25677</link><pubDate>Fri, 28 May 2010 13:33:53 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:25677</guid><dc:creator>Adam Machanic</dc:creator><description>&lt;p&gt;Congratulations! You've made it back for the the third and final installment of Parallelism Week here&lt;/p&gt;
</description></item><item><title>SQL Sentry Plan Explorer : Version 1.1!</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2010/05/26/sql-university-parallelism-week-part-2-query-processing.aspx#31900</link><pubDate>Wed, 22 Dec 2010 19:09:29 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:31900</guid><dc:creator>Aaron Bertrand</dc:creator><description>&lt;p&gt;Last week, Microsoft offered up an early Christmas present: SQL Server 2005 SP4 . This week, it's SQL&lt;/p&gt;
</description></item></channel></rss>