Sql-Server

我如何知道 SQL Server 實際使用了多少核心?

  • October 12, 2020

我有兩台執行 SQL Server 的伺服器。

  • 伺服器 1:SQL Server 2008 R2 Express(4 核)
  • 伺服器2:SQL Server 2012 開發者版(8核)

據我所知,SQL Server 2008 R2 Express 應該只使用一個核心。

SQL Server 2012 Developer 版本應該使用全部 8 個核心。

但是,如果我在 SQL Server 2008 R2 Express 上的 SQL 查詢中執行以下命令,它會顯示 4 個核心。

select scheduler_id, cpu_id, status, is_online 
from sys.dm_os_schedulers 
where status = 'VISIBLE ONLINE'

我是否使用正確的命令來衡量使用情況?

Express 版受限於 1 個處理器,而不是 1 個核心:

SQL Server 支持指定數量的處理器插槽乘以每個插槽中的邏輯 CPU 數量。例如,出於此表的目的,以下被視為單處理器: 單核、超執行緒處理器,每個插槽具有 2 個邏輯 CPU。具有 2 個邏輯 CPU 的雙核處理器。具有 4 個邏輯 CPU 的四核處理器。SQL Server 是按處理器 插槽許可的,而不是按邏輯 CPU許可的。

http://msdn.microsoft.com/en-us/library/ms143760(v=sql.105).aspx

是的,sys.dm_os_schedulers 可用於確保所有 4 個核心都映射到調度程序。

對大於 2007 的作業系統使用此命令:

->> WMIC CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors

對於物理伺服器 DeviceID ~ Socket, NumberofCores ~ CPU’s, NumberOfLogicalProcessors ~ Threads。MS 現在使用基於核心的許可模型。CAL 超出範圍。如果需要更多資訊,請搜尋“Microsoft SQL Server 2012 許可指南”。

下面的範例對於標準/企業版 2 件裝 *4 CPU SQL Server 許可證的成本/收費是必要的。總共 8 個核心 (CPU)。

DeviceID  NumberOfCores  NumberOfLogicalProcessors
CPU0      4              8
CPU1      4              8

任務管理器中的性能選項卡或資源監視器中的 CPU 選項卡將顯示 16 個 CPU 正在執行。邏輯處理器。搜尋“Intel X5550”,這是我正在檢查的處理器。英特爾在網站ark.intel.com上提供了所有規格,以檢查所需的資訊。

引用自:https://dba.stackexchange.com/questions/68383