我有2个物理CPU (每个都是四核),并且启用了超线程。任务管理器显示了16个逻辑处理器。当前的maxdop设置默认为零。
当使用并行性时,如果可用,将使用所有16个逻辑处理器,其中16个调度器可用于跨越查询。为了澄清查询优化器何时使用并行性(特别是在启用超线程时);它是否考虑可用的逻辑核心而不是物理核心?
发布于 2012-06-02 22:36:58
当SQL Server生成并行计划时,它不包括每次执行该计划的DOP。该计划简单地包括并行运算符,并在执行查询时根据服务器负载等因素和MAXDOP设置/提示等限制动态选择DOP。
虽然SQL Server是NUMA感知的,但它无法区分常规核心和超线程核心。它们都只是逻辑处理器。
如果您的工作负载受益于在尽可能多的CPU马力上运行的并行查询,那么可以尝试关闭超线程,看看是否会有所不同。超线程对于OLTP来说是很棒的,在OLTP中有许多并发连接和短请求,但在您的情况下可能不是那么多。你得测试一下。
https://stackoverflow.com/questions/10786676
复制相似问题