21 sql-server sql-server-2008-r2 sql-server-2012
我有两台运行 SQL Server 的服务器。
据我所知,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'
Run Code Online (Sandbox Code Playgroud)
我是否使用正确的命令来衡量使用情况?
小智 8
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 个内核都与调度程序映射。