Reservieren von Threads für eine CPU
Standardmäßig startet jede Instanz von SQL Server jeden Thread. Dann weist das Betriebssystem jeden Thread einer bestimmten CPU zu. Das Betriebssystem verteilt Threads von Instanzen von SQL Server gleichmäßig auf die Mikroprozessoren oder CPUs eines Computers. Manchmal kann das Betriebssystem einen Thread auch von einer stark beanspruchten CPU zu einer anderen CPU verlagern.
SQL Server-Administratoren können die Konfigurationsoption affinity mask verwenden, um eine oder mehrere CPUs von der Ausführung von Threads von einer bestimmten Instanz von SQL Server auszuschließen. Der Wert für affinity mask zeigt ein Bitmuster an, das die CPUs kennzeichnet, die für die Ausführung von Threads von dieser Instanz von SQL Server verwendet werden. Der Wert 13 für affinity mask stellt z. B. das Bitmuster 1101 dar. Auf einem Computer mit vier CPUs wird hierdurch festgelegt, dass die Ausführung von SQL Server-Threads über die CPUs 0, 2 und 3, jedoch nicht über CPU 1 geplant werden kann. Wenn affinity mask angezeigt wird, ordnet SQL Server die Threads gleichmäßig den CPUs zu, die nicht durch die Bitmaske ausgeschlossen werden. Ein weiterer Effekt von affinity mask besteht darin, dass das Betriebssystem keine Threads von einer CPU zu einer anderen verlagert. Allerdings wird affinity mask selten verwendet. Die meisten Systeme erzielen eine optimale Leistung, indem sie dem Betriebssystem die Planung der Ausführung von Threads zwischen den verfügbaren CPUs überlassen.
Siehe auch
Konzepte
Verwenden der Option lightweight pooling
Planen von Batches oder Tasks in SQL Server
Grundlegendes zu NUMA (Non-Uniform Memory Access)