【发布时间】:2013-12-26 10:24:48
【问题描述】:
在 SQL Server 2008 中,我已将 OPTION (MAXDOP 4) 添加到我的查询中。
但是,估计的执行计划中没有“并行”步骤。
这是否意味着即使我说“MAXDOP 4”,SQL Server 也选择不并行执行查询?
如何强制 SQL Server 使用并行性?
【问题讨论】:
标签: sql-server tsql parallel-processing sql-execution-plan
在 SQL Server 2008 中,我已将 OPTION (MAXDOP 4) 添加到我的查询中。
但是,估计的执行计划中没有“并行”步骤。
这是否意味着即使我说“MAXDOP 4”,SQL Server 也选择不并行执行查询?
如何强制 SQL Server 使用并行性?
【问题讨论】:
标签: sql-server tsql parallel-processing sql-execution-plan
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
【讨论】:
MAXDOP 是最大并行度。
某些查询不能使用并行处理(例如带有 ORDER BY 的 Selects)。
Parrelelism 也增加了一些开销。 SQL Server 不会使用它,除非它认为有必要(使用统计信息)。
【讨论】:
来自SQL Server 2016 CU2,您可以使用未记录的查询提示:
SELECT ...
-- rest of the query
option(use hint('ENABLE_PARALLEL_PLAN_PREFERENCE'));
更多信息:
【讨论】: