Hi All,
I'm doing research on WHY decreasing MAXDOP for my SQL Server (2 sockets x 6 cores + HT = 24 logical cpus) would benefit my system? According to one of my previous posts here and based on MSFT recommendations, i will be trying a setting of MAXDOP = 12 and MAXDOP = 8 on my system.
Question is, WHY would decreasing this value benefit my system? Two points that are conflicting in my head and causing me confusion:
1) I read an article from Linchi Shea that the performance gain of increasing the available processors for parallelism dramatically reduces after 8, and basically flatlines at 24. So based on this simple statement, more cpus will equal better performance for parallel queries - so why decrease it?
2) The only reason i can think that supports the theory that MAXDOP should not be 0 in a system with a large # of cpus (like mine), is that if my system (OLTP) has some large, long-running xomplex queries that SQL decides to use all available processors to process, then when smaller 'fast' queries come in at the same time, they may have to wait for the parallel query to finish executing before getting a CPU cycle of their own, thus providing negative impact on the system. In this case, if MAXDOP was set to 12, then the long-running query would only be able to hog 12 cpus, therefore leaving 12 more for other queries running at the same time..
Do i make sense? Or can someone help explain why decreasing MAXDOP on a system with large cpu #s be beneficial to an OLTP system?
Thanks in advance.