SQL Server MaxDop不会生成并行性

时间:2013-12-26 10:24:48

标签: sql-server tsql parallel-processing sql-execution-plan

在SQL Server 2008中,我已将OPTION (MAXDOP 4)添加到我的查询中。

但是,估计执行计划中没有“并行”步骤。

这是否意味着SQL Server选择不并行执行查询,即使我说“MAXDOP 4”?

如何强制SQL Server使用并行性?

3 个答案:

答案 0 :(得分:4)

OPTION (MAXDOP 4)用于在执行期间限制CPU。

如果要强制SQL Server使用并行性,可以执行以下操作。 OPTION(RECOMPILE, QUERYTRACEON 8649)您可以阅读更多相关信息http://web.archive.org/web/20180404164406/http://sqlblog.com/blogs/paul_white/archive/2011/12/23/forcing-a-parallel-query-execution-plan.aspx

答案 1 :(得分:1)

MAXDOP是最大的parralelism程度。

某些查询无法使用并行处理(例如,使用ORDER BY选择)。

Parrelelism也增加了一些开销。 SQL Server将不会使用它,除非它在必要时使用它(使用统计信息)。

答案 2 :(得分:1)

SQL Server 2016 CU2您可以使用未记录的查询提示:

SELECT ...
-- rest of the query
option(use hint('ENABLE_PARALLEL_PLAN_PREFERENCE'));

更多信息:

http://www.queryprocessor.com/how-to-get-a-parallel-plan/

https://connect.microsoft.com/SQLServer/feedback/details/714968/provide-a-hint-to-force-generation-of-a-parallel-plan