【问题标题】:SQL Server MaxDop does not generate ParallelismSQL Server MaxDop 不生成并行度
【发布时间】: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


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      MAXDOP 是最大并行度。

      某些查询不能使用并行处理(例如带有 ORDER BY 的 Selects)。

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

      【讨论】:

        【解决方案3】:

        来自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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多