I have a bit of an odd occurrence that I'm trying to troubleshoot and wondering if any one has experienced similar issues and/or has any suggestions.
I have a query (not the best query, not the worst query) that has a number of similar unions (basically taking different data out of the same table and union all together) that then runs across multiple CPUs (the server has one socket 12 CPUs; the SQL server has Max Degree of Parallelism of 4 and a Cost Threshold of Parallelism of 55)
The expected behavior: for this query would then be that it runs across four CPUs; that it would max out those four CPUs (i.e. at 100%); that it would generate a number of CXPACKET waits; and that it would finish; also that other queries coming in would then untilise the other CPUs and run in the same fashion as if this query wasn't running (i.e. the other CPUs would be at 10% running other queries)
The actual behavior: seems to be that when this query is run four CPUs go to 100%; that there are a number of CXPACKET waits; that the other CPUs are showing utilisation (5-8%); that this query finishes and returns results; however other queries run seem to timeout / not complete / etc... (generally fail)
Any ideas what could be happening there? I feel like there is some SQL Server oddness that I'm not aware of? That the other queries are not being handled properly (maybe trying to hit the same CPUs for some reason?) That maybe there is some setting or control that can be put in place that would resolve this?