2012-05-28 37 views
3

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

当使用并行时,如果可用,将使用全部16个逻辑处理器,并且可以使用16个调度器来跨越查询。澄清查询优化器何时使用并行(特别是启用超线程时);它认为可用的逻辑核心而不是物理核心?

+0

你不知道我们有关于RDBMS问题的网站吗?它被称为[dba.se]。 – Will

回答

0

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

尽管SQL Server支持NUMA,但AFAIK无法区分常规内核和Hyperthreaded内核。它们都只是逻辑处理器。

如果您的工作负载受益于在尽可能多的CPU功率下运行的并行查询,请尝试关闭Hyperthreading以查看它是否有所作为。对于OLTP来说,超线程非常适用,其中有很多并发连接需要较短的请求,但可能并非如此。你必须测试。

+0

我同意,并行是基于逻辑核心(硬件线程) –