Allocazione di thread a una CPU
Per impostazione predefinita, ogni istanza di SQL Server avvia ogni thread. Il sistema operativo quindi assegna ogni thread a una CPU specifica. Il sistema operativo distribuisce i thread delle istanze di SQL Server in modo uniforme tra i microprocessori, o CPU, su un computer. In alcuni casi, è inoltre possibile che il sistema operativo trasferisca un thread da una CPU che deve sopportare un elevato carico di lavoro a un'altra.
Gli amministratori di SQL Server possono utilizzare l'opzione di configurazione affinity mask per escludere una o più CPU dalla selezione per l'esecuzione di thread da un'istanza specifica di SQL Server. Il valore di affinity mask specifica uno schema di bit in cui vengono indicate le CPU utilizzate per eseguire i thread di tale istanza di SQL Server. Ad esempio, il valore di affinity mask 13 rappresenta lo schema di bit 1101. In un computer con quattro CPU, questo valore indica che è possibile pianificare i thread di tale istanza di SQL Server nelle CPU 0, 2 e 3, ma non nella CPU 1. Se non viene specificata l'opzione affinity mask, l'istanza di SQL Server alloca i thread uniformemente tra le CPU che non sono state escluse. Un altro effetto di affinity mask consiste nel fatto che il sistema operativo non sposta i thread tra le CPU. Tuttavia, affinity mask viene utilizzato raramente. In quasi tutti i sistemi è possibile ottenere prestazioni ottimali lasciando che sia il sistema operativo a pianificare i thread tra le CPU disponibili.