我从未清楚了解MAXDOP的用法。我确实知道它可以使查询速度更快,并且这是我可以用于查询优化的最后一项。
但是,我的问题是,何时何地最适合在查询中使用它?

最佳答案

如Kaboing所述,MAXDOP(n)实际上控制查询处理器中使用的CPU内核数。
在完全空闲的系统上,SQL Server将尝试将表尽快拉入内存并在内存之间将它们联接。在您的情况下,最好使用单个CPU来完成此操作。这可能与使用OPTION (FORCE ORDER)的效果相同,后者迫使查询优化器使用您指定的联接顺序。在某些情况下,我看到OPTION (FORCE PLAN)将查询从执行时间的26秒减少到1秒。
联机丛书继续说MAXDOP的可能值为:

我不确定MAXDOP的最佳用法是什么,但是我猜测一下,如果您有一个带有8个分区的表,由于I / O的限制,您想指定MAXDOP(8),但是我可以错误。
这是我发现的有关MAXDOP的一些快速链接:
Books Online: Degree of Parallelism
General guidelines to use to configure the MAXDOP option

关于sql - 在SQL Server中使用OPTION(MAXDOP 1)的目的是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/163917/

10-10 07:31