Warning: Constant WP_TEMP_DIR already defined in /var/www/html/blogs/joe/wp-config.php on line 93

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/joe/wp-config.php:93) in /var/www/html/blogs/joe/wp-includes/rest-api/class-wp-rest-server.php on line 1902
{"id":509,"date":"2012-02-13T03:37:00","date_gmt":"2012-02-13T03:37:00","guid":{"rendered":"\/blogs\/joe\/post\/Workload-Group-MAXDOP-and-the-Faux-Parallel-Plan.aspx"},"modified":"2013-01-20T10:56:12","modified_gmt":"2013-01-20T18:56:12","slug":"workload-group-max_dop-and-the-faux-parallel-plan","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/","title":{"rendered":"Workload Group MAX_DOP and the Faux Parallel Plan"},"content":{"rendered":"

Let\u2019s say you\u2019ve \u201cdisabled\u201d parallelism on your SQL Server instance via the \u2018max degree of parallelism\u2019 setting as follows:<\/span><\/span><\/p>\n

EXEC<\/span><\/span><\/span> sp_configure<\/span><\/span>‘max degree of parallelism’<\/span><\/span>,<\/span><\/span> 1<\/span><\/span><\/span><\/p>\n

RECONFIGURE<\/span><\/span><\/span><\/p>\n

\n

\n

Now most folks know (or are finding out) that this doesn\u2019t really<\/em> prevent parallel plans if you throw in a MAXDOP hint.\u00a0 <\/span>For example, let\u2019s take the following query:<\/span><\/span><\/p>\n

\n

EXEC<\/span><\/span><\/span> sp_executesql<\/span><\/span><\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span>N’SELECT charge_no FROM dbo.charge<\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>WHERE charge_dt = @charge_dt OPTION (MAXDOP 4)’<\/span><\/span><\/span>,<\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>N’@charge_dt datetime’<\/span><\/span>,<\/span><\/span><\/span>\u00a0 <\/span><\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>@charge_dt<\/span><\/span> =<\/span><\/span> ‘1999-07-20 10:49:11.833’<\/span><\/span><\/span>;<\/span><\/span><\/span><\/span><\/p>\n

\n

If we look at the actual plan and properties, even though I\u2019ve capped the instance level max degree of parallelism, I get a parallel plan (using <\/span><\/span>SQL Sentry Plan Explorer<\/span><\/a><\/span>):<\/span><\/span><\/p>\n

\n

\"clip_image002\"<\/a><\/span><\/p>\n

\"clip_image004\"<\/a><\/span><\/p>\n

\n

Now let\u2019s say I want to out-smart anyone capping the MAXDOP by using Resource Governor and the MAX_DOP workload group setting:<\/span><\/span><\/p>\n

\n

CREATE<\/span><\/span><\/span> WORKLOAD<\/span><\/span> GROUP<\/span><\/span> <\/span>wgReportUsers<\/span><\/span><\/span><\/span><\/p>\n

WITH<\/span><\/span><\/span><\/p>\n

(<\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>MAX_DOP<\/span><\/span> =<\/span><\/span> 1<\/span><\/span><\/span><\/p>\n

)<\/span><\/span><\/span> USING<\/span><\/span> <\/span>[rpReportUsers]<\/span><\/span><\/span><\/span><\/p>\n

GO<\/span><\/span><\/span><\/p>\n

\n

\n

I also created a classifier function and a resource pool (assuming I want to restrict anything else).\u00a0 <\/span>I won\u2019t add that setup code here since it\u2019s just the standard RG configuration process.\u00a0 <\/span>For this example I\u2019ve configured nothing unusual with the exception of setting MAX_DOP = 1 and making sure my reporting user gets classified to the constrained workload group.<\/span><\/span><\/p>\n

\n

Now let\u2019s say the user connects in after RG is configured.\u00a0 <\/span>I am able to confirm this via Profiler through the PreConnect:Completed event class:<\/span><\/span><\/p>\n

\n

\"clip_image006\"<\/a><\/span><\/p>\n

\n

In this example, GroupId 257 maps to my workload group.<\/span><\/span><\/p>\n

So I\u2019m logged in as the report user, and I\u2019ve given that user the appropriate read-permissions and also SHOWPLAN so we can see that serial plan we\u2019re expecting.\u00a0 <\/span>I also cleared the cache so that the new execution would be a new compilation.<\/span><\/span><\/p>\n

But what do we see when the user tries to override the MAXDOP?<\/span><\/span><\/p>\n

\n

EXEC<\/span><\/span><\/span> sp_executesql<\/span><\/span><\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span>N’SELECT charge_no FROM dbo.charge<\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>WHERE charge_dt = @charge_dt OPTION (MAXDOP 4)’<\/span><\/span><\/span>,<\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>N’@charge_dt datetime’<\/span><\/span>,<\/span><\/span><\/span>\u00a0 <\/span><\/span><\/span><\/span><\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span>@charge_dt<\/span><\/span> =<\/span><\/span> ‘1999-07-20 10:49:11.833’<\/span><\/span><\/span>;<\/span><\/span><\/span><\/span><\/p>\n

\n

\n

\"clip_image008\"<\/a><\/span><\/p>\n

And you\u2019ll see the same in SQL Server Management Studio (in case you were wondering):<\/span><\/span><\/p>\n

\"clip_image010\"<\/a><\/span><\/p>\n

\n

So what about the rows per thread that I showed you earlier?\u00a0 <\/span>How does it look now?\u00a0 <\/span>This time, there are no separate columns by thread:<\/span><\/span><\/p>\n

\n

\"clip_image012\"<\/a><\/span><\/p>\n

Not there.\u00a0 <\/span>And while there are parallel iterators, there rows per thread is not showing.<\/span><\/span><\/p>\n

Seen another way, let\u2019s look at the properties of the Clustered Index Scan and associated XML Showplan RunTimeCountersPerThread values by thread for the original, unconstrained execution:<\/span><\/span><\/p>\n

\n

\"clip_image014\"<\/a><\/span><\/p>\n

<<\/span><\/span><\/span>RunTimeCountersPerThread<\/span><\/span><\/span> Thread<\/span><\/span>=<\/span><\/span>“3”<\/span><\/span> ActualRows<\/span><\/span>=<\/span><\/span>“2”<\/span><\/span><\/span><\/span> ActualEndOfScans<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> ActualExecutions<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> <\/span>\/><\/span><\/span><\/span><\/span><\/p>\n

<<\/span><\/span><\/span>RunTimeCountersPerThread<\/span><\/span><\/span> Thread<\/span><\/span>=<\/span><\/span>“2”<\/span><\/span> ActualRows<\/span><\/span>=<\/span><\/span>“2”<\/span><\/span><\/span><\/span> ActualEndOfScans<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> ActualExecutions<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> <\/span>\/><\/span><\/span><\/span><\/span><\/p>\n

<<\/span><\/span><\/span>RunTimeCountersPerThread<\/span><\/span><\/span> Thread<\/span><\/span>=<\/span><\/span>“4”<\/span><\/span> ActualRows<\/span><\/span>=<\/span><\/span>“6”<\/span><\/span><\/span><\/span> ActualEndOfScans<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> ActualExecutions<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> <\/span>\/><\/span><\/span><\/span><\/span><\/p>\n

<<\/span><\/span><\/span>RunTimeCountersPerThread<\/span><\/span><\/span> Thread<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> ActualRows<\/span><\/span>=<\/span><\/span>“6”<\/span><\/span><\/span><\/span> ActualEndOfScans<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> ActualExecutions<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> <\/span>\/><\/span><\/span><\/span><\/span><\/p>\n

<<\/span><\/span><\/span>RunTimeCountersPerThread<\/span><\/span><\/span> Thread<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span> ActualRows<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span> ActualEndOfScans<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span> ActualExecutions<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span> <\/span>\/><\/span><\/span><\/span><\/span><\/p>\n

\n

\n

And this is what the MAXDOP 1 workload group constrained request looks like in the properties in contrast:<\/span><\/span><\/p>\n

\n

\"clip_image016\"<\/a><\/span><\/p>\n

<<\/span><\/span><\/span>RunTimeCountersPerThread<\/span><\/span><\/span> Thread<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span> ActualRows<\/span><\/span>=<\/span><\/span>“16”<\/span><\/span><\/span><\/span> ActualEndOfScans<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> ActualExecutions<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> <\/span>\/><\/span><\/span><\/span><\/span><\/p>\n

\n

\n

For the constrained plan, I can also see that the DegreeOfParallelism is 0 <\/em>for the QueryPlan element, but not for the RelOps:<\/span><\/span><\/p>\n

\n

<<\/span><\/span><\/span>QueryPlan<\/span><\/span><\/span> DegreeOfParallelism<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span><\/span> CachedPlanSize<\/span><\/span>=<\/span><\/span>“16”<\/span><\/span> CompileTime<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> CompileCPU<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> CompileMemory<\/span><\/span>=<\/span><\/span>“120”<\/span><\/span><\/span>><\/span><\/span><\/span><\/span><\/p>\n

\n

<<\/span><\/span><\/span>RelOp<\/span><\/span><\/span> AvgRowSize<\/span><\/span>=<\/span><\/span>“19”<\/span><\/span> EstimateCPU<\/span><\/span>=<\/span><\/span>“0.880078”<\/span><\/span> EstimateIO<\/span><\/span>=<\/span><\/span>“6.8935”<\/span><\/span> EstimateRebinds<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span> EstimateRewinds<\/span><\/span>=<\/span><\/span>“0”<\/span><\/span> <\/span><\/span><\/span><\/p>\n

EstimateRows<\/span><\/span><\/span>=<\/span><\/span>“14.8802”<\/span><\/span><\/span> LogicalOp<\/span><\/span>=<\/span><\/span>“Clustered Index Scan”<\/span><\/span> NodeId<\/span><\/span>=<\/span><\/span>“1”<\/span><\/span> Parallel<\/span><\/span>=<\/span><\/span>“true”<\/span><\/span><\/span> <\/span><\/span><\/span><\/p>\n

PhysicalOp<\/span><\/span><\/span>=<\/span><\/span>“Clustered Index Scan”<\/span><\/span><\/span> EstimatedTotalSubtreeCost<\/span><\/span>=<\/span><\/span>“7.77357”<\/span><\/span> TableCardinality<\/span><\/span>=<\/span><\/span>“1600000”<\/span><\/span><\/span>><\/span><\/span><\/span><\/span><\/p>\n

\n

What\u2019s more, while the graphical plans look<\/em> identical and has identical estimated costs (I didn\u2019t mention this earlier \u2013 but both plans had an estimated cost of 8.18609).<\/span><\/span><\/p>\n

So the request did indeed honor the max degree of parallel setting for the workload group in the end \u2013 it just didn\u2019t remove the parallelism related iterator and properties.<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"

Let\u2019s say you\u2019ve \u201cdisabled\u201d parallelism on your SQL Server instance via the \u2018max degree of parallelism\u2019 setting as follows: EXEC sp_configure‘max degree of parallelism’, 1 RECONFIGURE Now most folks know (or are finding out) that this doesn\u2019t really prevent parallel plans if you throw in a MAXDOP hint.\u00a0 For example, let\u2019s take the following query: […]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[],"class_list":["post-509","post","type-post","status-publish","format-standard","hentry","category-performance"],"yoast_head":"\nWorkload Group MAX_DOP and the Faux Parallel Plan - Joe Sack<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Workload Group MAX_DOP and the Faux Parallel Plan - Joe Sack\" \/>\n<meta property=\"og:description\" content=\"Let\u2019s say you\u2019ve \u201cdisabled\u201d parallelism on your SQL Server instance via the \u2018max degree of parallelism\u2019 setting as follows: EXEC sp_configure‘max degree of parallelism’, 1 RECONFIGURE Now most folks know (or are finding out) that this doesn\u2019t really prevent parallel plans if you throw in a MAXDOP hint.\u00a0 For example, let\u2019s take the following query: […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/\" \/>\n<meta property=\"og:site_name\" content=\"Joe Sack\" \/>\n<meta property=\"article:published_time\" content=\"2012-02-13T03:37:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-01-20T18:56:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/workload-group-maxdop-and-the-faux-paral\/4653fff0\/clip_image002_thumb.jpg\" \/>\n<meta name=\"author\" content=\"Joseph Sack\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joseph Sack\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/\",\"name\":\"Workload Group MAX_DOP and the Faux Parallel Plan - Joe Sack\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#website\"},\"datePublished\":\"2012-02-13T03:37:00+00:00\",\"dateModified\":\"2013-01-20T18:56:12+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Performance\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/category\/performance\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Workload Group MAX_DOP and the Faux Parallel Plan\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/\",\"name\":\"Joe Sack\",\"description\":\"SQL Server Performance Tuning, High Availability and Disaster Recovery Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648\",\"name\":\"Joseph Sack\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g\",\"caption\":\"Joseph Sack\"},\"description\":\"Joe Sack is a Principal Consultant with SQLskills. He has worked as a SQL Server professional since 1997 and has supported and developed for SQL Server environments in financial services, IT consulting, manufacturing, retail and the real estate industry. Prior to joining SQLskills he worked at Microsoft as a Premier Field Engineer supporting very large enterprise customer environments. He was responsible for providing deep SQL Server advisory services, training, troubleshooting and ongoing solutions guidance. His areas of expertise include performance tuning, scalability, T-SQL development and high-availability. In 2006 Joe earned the \u201cMicrosoft Certified Master: SQL Server 2005\u201d certification and in 2008 he earned the \u201cMicrosoft Certified Master: SQL Server 2008\u201d certification. In 2009 he took over responsibility for the entire SQL Server Microsoft Certified Master program and held that post until 2011. He was given the SQL Server MVP award in 2013.\",\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/joe\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/josephsack\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/author\/joe\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Workload Group MAX_DOP and the Faux Parallel Plan - Joe Sack","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/","og_locale":"en_US","og_type":"article","og_title":"Workload Group MAX_DOP and the Faux Parallel Plan - Joe Sack","og_description":"Let\u2019s say you\u2019ve \u201cdisabled\u201d parallelism on your SQL Server instance via the \u2018max degree of parallelism\u2019 setting as follows: EXEC sp_configure‘max degree of parallelism’, 1 RECONFIGURE Now most folks know (or are finding out) that this doesn\u2019t really prevent parallel plans if you throw in a MAXDOP hint.\u00a0 For example, let\u2019s take the following query: […]","og_url":"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/","og_site_name":"Joe Sack","article_published_time":"2012-02-13T03:37:00+00:00","article_modified_time":"2013-01-20T18:56:12+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/workload-group-maxdop-and-the-faux-paral\/4653fff0\/clip_image002_thumb.jpg"}],"author":"Joseph Sack","twitter_misc":{"Written by":"Joseph Sack","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/","url":"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/","name":"Workload Group MAX_DOP and the Faux Parallel Plan - Joe Sack","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#website"},"datePublished":"2012-02-13T03:37:00+00:00","dateModified":"2013-01-20T18:56:12+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/workload-group-max_dop-and-the-faux-parallel-plan\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/joe\/"},{"@type":"ListItem","position":2,"name":"Performance","item":"https:\/\/www.sqlskills.com\/blogs\/joe\/category\/performance\/"},{"@type":"ListItem","position":3,"name":"Workload Group MAX_DOP and the Faux Parallel Plan"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/joe\/","name":"Joe Sack","description":"SQL Server Performance Tuning, High Availability and Disaster Recovery Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/joe\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648","name":"Joseph Sack","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g","caption":"Joseph Sack"},"description":"Joe Sack is a Principal Consultant with SQLskills. He has worked as a SQL Server professional since 1997 and has supported and developed for SQL Server environments in financial services, IT consulting, manufacturing, retail and the real estate industry. Prior to joining SQLskills he worked at Microsoft as a Premier Field Engineer supporting very large enterprise customer environments. He was responsible for providing deep SQL Server advisory services, training, troubleshooting and ongoing solutions guidance. His areas of expertise include performance tuning, scalability, T-SQL development and high-availability. In 2006 Joe earned the \u201cMicrosoft Certified Master: SQL Server 2005\u201d certification and in 2008 he earned the \u201cMicrosoft Certified Master: SQL Server 2008\u201d certification. In 2009 he took over responsibility for the entire SQL Server Microsoft Certified Master program and held that post until 2011. He was given the SQL Server MVP award in 2013.","sameAs":["http:\/\/3.209.169.194\/blogs\/joe","https:\/\/twitter.com\/https:\/\/twitter.com\/josephsack"],"url":"https:\/\/www.sqlskills.com\/blogs\/joe\/author\/joe\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts\/509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/comments?post=509"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts\/509\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/media?parent=509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/categories?post=509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/tags?post=509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}