3

我有 2 个物理 CPU(每个都是四核)并启用了超线程。任务管理器显示 16 个逻辑处理器。当前的 maxdop 设置默认为零。

使用并行性时,如果可用,将使用所有 16 个逻辑处理器,其中 16 个调度程序可用于跨越查询。澄清查询优化器何时使用并行性(尤其是在启用超线程时);它是否考虑可用的逻辑核心而不是物理核心?

4

1 回答 1

0

当 SQL Server 生成并行计划时,它不包括每次执行的 DOP。该计划仅包含并行运算符,并且在执行查询时根据服务器负载等因素以及 MAXDOP 设置/提示等限制动态选择 DOP。

虽然 SQL Server 支持 NUMA,但 AFAIK 无法区分常规内核和超线程内核。它们都只是逻辑处理器。

如果您的工作负载受益于在尽可能多的 CPU 上运行的并行查询,请尝试关闭超线程,看看它是否有所作为。超线程对于 OLTP 非常有用,因为它有很多并发连接和短请求,但在您的情况下可能不是很多。你必须进行测试。

于 2012-06-02T14:36:57.943 回答