我有2个物理CPU(每个都是四核)并且启用了超线程。任务管理器显示16个逻辑处理器当前maxdop设置默认为零。
当使用并行性时,如果可用,将使用所有16个逻辑处理器,并且可以使用16个调度程序来跨越查询。澄清查询优化器何时使用并行性(特别是在启用超线程时);它是否考虑可用的逻辑核心而不是物理核心?
答案 0 :(得分:0)
当SQL Server生成并行计划时,它不包含每次执行它的DOP。该计划仅包括并行运算符,并且在执行查询时动态选择DOP,具体取决于服务器负载和MAXDOP设置/提示等限制。
虽然SQL Server可识别NUMA,但AFAIK无法区分常规核心和超线程核心。他们都只是逻辑处理器。
如果您的工作负载受益于以尽可能多的CPU运行速度运行的并行查询,请尝试关闭超线程以查看它是否有所作为。超线程非常适用于OLTP,其中存在大量具有短请求的并发连接,但在您的情况下可能没有那么多。你必须测试。