sql server是否超线程?

使用sys.dm_sys_info 这个视图的时候经常对hyperthread_ratio这个列感觉迷惑。这个列的含义到底是什么?

翻译的外国大神的一篇文章, http://sqlblog.com/blogs/kalen_delaney/archive/2007/12/08/hyperthreaded-or-not.aspx

在我的课堂上或者每次我做性能顾问的时候,我经常会遇到一个问题“我怎么确定我们的SQL SERVER是否是超线程的”?

当我发现DMV--sys.dm_sys_info有一个列叫做hyperthread_ratio(超线程比)的时候,我感觉很高兴极了。不久后,我读到我最爱的一个SQL SERVER

博主Buck Woody 的一篇博文。他指出下面的查询告诉了我们CPU核心的数量,而并不是告诉你是否开启了超线程。

SELECT cpu_count/hyperthread_ratio AS sockets
FROM sys.dm_os_sys_info

虽然Buck 说这条语句告诉了我们核的数量,但这并不正确。因为一个插槽可以包含一个多核的CPU。一个拥有单插槽双核CPU 并且未做超线程的cpu_count 是2,hyperthread_ratio 是2 ;同时单插槽单核心并且超线程的计算机 hyperthread_ratio 同样也是2。在2种情况下,cpu_count/hyperthread_ratio 都是1--插槽的数量。如果我们有一台一个插槽,双核CPU,并且超线程的计算机,CPU_COUNT会变成4.hyperthread_ratio 同样是4,使用这个比率同样是1,总结如下:


Number of Sockets


Number of Cores


Hyperthreaded?


sys.dm_os_info.
  cpu_count


sys.dm_os_info.
  hyperthread_ratio


cpu_count /   hyperthread_ratio


1


2


NO


2


2


1


1


1


YES


2


2


1


1


2


YES


4


4


1

所以即使Buck说这个公式能够告诉我们核心的数量,但是这个查询本身告诉我们,结果是“插槽数”。cpu_count/hyperthread_ratio会得到插槽数,而不是核心数。并且没有办法区分双核和超线程.

时间: 2024-10-10 18:28:33

sql server是否超线程?的相关文章

SQL Server CPU

解决数据库系统的性能问题可能是一项艰巨的任务.了解如何找到问题很重要,但是了解系统对特定请求作出特定反应的原因更加重要.影响数据库服务器上的 CPU 利用率 的因素有很多:SQL 语句的编译和重新编译.缺少索引.多线程操作.磁盘瓶颈.内存瓶颈.日常维护以及抽取.转换和装载 (ETL) 活动和其他因素.利用 CPU 本身并不是一件坏事情,执行任务是 CPU 的职责所在.CPU 利用率正常的关键是确保 CPU 处理您需要它处理的任务,而不是将循环浪费在不良优化的代码或缓慢的硬件上. 达到同一目的的两

(转)SQL Server 性能调优(cpu)

摘自:http://www.cnblogs.com/Amaranthus/archive/2012/03/07/2383551.html 研究cpu压力工具 perfom SQL跟踪 性能视图 cpu相关的wait event Signal wait time SOS_SCHEDULER_YIELD等待 CXPACKET等待 CMEMTHREAD等待 调度队列 cpu密集型查询 高CPU使用率的创建几种状况 miss index 统计数据丢失 非SARG谓词 隐式类型转化 参数探测器 ad ho

SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)

前言 本篇继续玩转模块的内容,关于索引在SQL Server的位置无须多言,本篇将分析如何利用Hint引导语句充分利用索引进行运行,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲言少叙,进入本篇的内容. 技术准备 数据库版本为SQL Server2012,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微软的另一个案例库AdventureWorks. 相信了解SQL Server的朋友,对这两个库都不会太陌生. 一.并行Hint提示 (MAXDOP N

SQL Server调优系列基础篇(联合运算符总结)

前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析. 一.联合运算符 所谓的联合运算符,其实应用最多的就两种:UNION ALL和UNION. 这两个运算符用法很简单,前者是将两个数据集结果合并,后者则是合并后进行去重操作,如果有过写T-SQL语句的码农都不会陌生. 我们来分析下

安装 SQL Server 2012 的硬件和软件要求(官方全面)

以下各节列出了安装和运行 SQL Server 2012 的最低硬件和软件要求. Hardware and Software Requirements (PowerPivot for SharePoint and Reporting Services in SharePoint Mode).' data-guid="ac62f277a77cf0fe4624123fb93d4313">有关 SharePoint 集成模式下 Analysis Services 的要求的详细信息,请参

sql server 2012不能全部用到CPU的逻辑核心数的问题

最近在工作中遇到了,sql server 2012 不能把CPU 的核心全部用到的问题,想信也有很多人遇到这问题,那么今天这节就先说说这问题是怎么出现的. 首先  介绍下服务器的环境 Windows 2008 R2 Enterprise Edition(X64) + Microsoft SQL Server 2012 (SP1)Enterprise Edition (64-bit) CPU 2路 18核 开启超线程后是72核心  如图:    再看sql实例的属性  如图: sql server

SQL Server调优系列基础篇(并行运算总结)

原文:SQL Server调优系列基础篇(并行运算总结) 前言 上三篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符.联合运算符的优化技巧. 本篇我们分析SQL Server的并行运算,作为多核计算机盛行的今天,SQL Server也会适时调整自己的查询计划,来适应硬件资源的扩展,充分利用硬件资源,最大限度的提高性能. 闲言少叙,直接进入本篇的正题. 技术准备 同前几篇一样,基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析. 一.并

SQL Server Column Store Indeses

SQL Server Column Store Indeses SQL Server Column Store Indeses. 1 1. 概述... 1 2. 索引存储... 2 2.1 列式索引存储... 2 2.2 数据编码和压缩... 3 2.2.1 编码... 3 2.2.2 优化行顺序... 4 2.2.3 压缩... 4 2.3 I/O和Cache. 4 3 查询处理和优化... 4 3.1 查询处理加强... 4 3.2 查询优化 1. 概述 SQL Server 11增加了新特

SQL Server 2008索引使用技巧

微软MVP及畅销书<Hitchhiker's Guide SQL Server>的作者Bill Vaughn简要给出了SQL Server 2008的索引使用技巧.该主题基于Kimberly Tripp和Paul Randall(这两位是SQL Server高可用性和性能方面的专家)的建议. 下面是主要的建议: ·页(page)密度 优化行大小:SQL Server 2005(及后续版本)支持8k的列.这意味着一行可以超过80k大小.这有意义么?哦,通常情况下没有.对行大小的管理与效率同样重要