By default, Microsoft® SQL Server™ simply starts each thread and Microsoft Windows NT® assigns each thread to a specific CPU. Windows NT distributes SQL Server threads evenly among the CPUs on a computer. At times, Windows NT can also move a thread from one CPU with heavy usage to another CPU.
SQL Server administrators can use the affinity mask configuration option to exclude one or more CPUs from being eligible to run SQL Server threads. The affinity mask value specifies a bit pattern that indicates the CPUs that are used to run SQL Server threads. For example, the affinity mask value 13 represents the bit pattern 1101. On a computer with four CPUs, this indicates SQL Server threads can be scheduled on CPUs 0, 2, and 3, but not on CPU 1. If affinity mask is specified, SQL Server allocates threads evenly among the CPUs that have not been masked off. Another effect of affinity mask is that Windows NT does not move threads from one CPU to another. affinity mask is rarely used; most systems get optimal performance by letting Windows NT schedule the threads among the available CPUs.