SQL Server 2008R2 Express 是否真的强制执行内存和 CPU 限制?

mik*_*son 6 sql-server sql-server-2008-r2

我一直在测试 SQL Server 2008R2 Express,看看它是否被限制为 1GB 的 RAM 和 1 个 CPU。

它肯定似乎使用了多个 CPU,因为当我运行一个大查询时,我在任务管理器中看到所有 4 个 CPU 上都有峰值。我从我拥有的数据库中的所有表中选择了 *,并在查看 perfmon 中的服务器总内存时使用 1.4GB RAM(我认为这是要查看的正确统计数据)。这在任务管理器上显示为 1.5GB 内存使用(我认为这是不可靠的)。

但是,它似乎不想超过 1,441,792KB。这看起来很奇怪,所以我不相信任何一种方式。

任何人都知道为什么会发生这种情况以及是否实际执行了限制?

Rem*_*anu 9

SQL Server Express 确实实施了限制,但这些限制不是您所期望的:

  • CPU:SQL Express 强制使用一个套接字,而不是一个 CPU。多核和超线程机器将在一个插槽上使用多个内核,而 SQL Express 将在该插槽上使用 2 或 4 个内核。请参阅SQL Server 各版本支持的最大处理器数

SQL Server 支持指定数量的处理器插槽乘以每个插槽中的逻辑 CPU 数量。例如,出于此表的目的,以下被视为单个处理器

  • 每个插槽有 2 个逻辑 CPU 的单核超线程处理器。
  • 带有 2 个逻辑 CPU 的双核处理器。
  • 具有 4 个逻辑 CPU 的四核处理器。
  • 内存:Express 将缓冲池的最大大小限制为仅 1GB。缓冲池仅占整个进程内存的一部分。

请参阅线程和任务架构以及内存管理架构