AngryHacker Asked: 2016-09-07 10:40:07 +0800 CST2016-09-07 10:40:07 +0800 CST 2016-09-07 10:40:07 +0800 CST sp_who2 中的 SPID 有很多行是什么意思 772 我sp_who2 active在盒子上运行,每个 SPID 获得多行。例如,见下文。这是否意味着 SQL Server 已将查询分解为 23 个并行子查询?如果是这样,为什么忽略 MaxDegreeOfParallelism 设置 8?或者这是别的什么? sql-server sql-server-2016 1 个回答 Voted Best Answer Kin Shah 2016-09-07T10:51:32+08:002016-09-07T10:51:32+08:00 为什么忽略 MaxDegreeOfParallelism 设置 8? 那是因为MAXDOP 是按操作员而不是按执行计划的。将您的MAXDOP 设置为一个好的值。 MAXDOP 设置用于限制执行计划中每个操作的线程数,而不限制用于执行查询的线程数。因此,在 sysprocesses 中看到每个 SPID 的线程大于 MAXDOP 设置是正常的。 另请参阅它的工作原理:SQL Server Per Query Degree Of Parallelism Worker Count(s) 附带说明:使用sp_whoIsActive - 有很多选项并使用 DMV -- sp_who2 是遗留的,使用旧的不推荐使用的表,并且是在冰河时代 1995/11/03 10:16 编写的 :-)
那是因为MAXDOP 是按操作员而不是按执行计划的。将您的MAXDOP 设置为一个好的值。
另请参阅它的工作原理:SQL Server Per Query Degree Of Parallelism Worker Count(s)
附带说明:使用sp_whoIsActive - 有很多选项并使用 DMV
-- sp_who2 是遗留的,使用旧的不推荐使用的表,并且是在冰河时代 1995/11/03 10:16 编写的 :-)