默认情况下,每个 SQL Server 实例启动一个线程。然后,由操作系统将每个线程分配给特定的 CPU。操作系统将 SQL Server 实例的线程平均分配给计算机上的微处理器或 CPU。有时候,操作系统还能将线程从负载过重的 CPU 移动到另一个 CPU。
SQL Server 管理员可以使用 affinity mask 配置选项排除一个或多个 CPU,使它们无法运行特定 SQL Server 实例的线程。affinity mask 值指定位模式,以指明用来运行该 SQL Server 实例的线程的 CPU。例如,affinity mask 值 13 表示位模式 1101。在具有 4 个 CPU 的计算机上,这指明可以将该 SQL Server 实例的线程安排在 CPU 0、2 和 3 上,而不是 CPU 1 上。如果指定 affinity mask,SQL Server 实例将在未应用掩码的 CPU 中平均分配线程。affinity mask的另一个作用是操作系统不会将线程从一个 CPU 移动到另一个 CPU。但是,很少使用 affinity mask。大多数系统通过让操作系统在可用的 CPU 中安排线程来获取最佳性能。
请参阅
概念
使用 lightweight pooling 选项
SQL Server 批处理或任务计划
了解非一致性内存访问