Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zum Ausführen von Multitasking verschieben Microsoft Windows 2000 und Windows Server 2003 manchmal Prozessthreads zwischen verschiedenen Prozessoren. Obwohl diese Aktivität aus Sicht des Betriebssystems effizient ist, kann diese Aktivität die Leistung von Microsoft SQL Server unter hohen Systemlasten verringern, da jeder Prozessorcache wiederholt mit Daten neu geladen wird. Unter diesen Bedingungen kann das Zuweisen bestimmter Threads zu bestimmten Prozessoren die Leistung verbessern, da das erneute Laden von Prozessoren vermieden wird. Eine solche Zuordnung zwischen einem Thread und einem Prozessor wird als Prozessoraffinität bezeichnet.
SQL Server unterstützt die Prozessoraffinität mithilfe von zwei Affinitätsmaskenoptionen: Affinitätsmaske (auch als CPU-Affinitätsmaske bezeichnet) und Affinitäts-E/A-Maske. Weitere Informationen zur Affinitätsmaskenoption finden Sie unter affinity mask Server Configuration Option. CPU- und E/A-Affinitätsunterstützung für Server mit 33 bis 64 Prozessoren erfordert die zusätzliche Verwendung der affinity64-Maske Serverkonfigurationsoption und affinity64 Input-Output Maske Serverkonfigurationsoption.
Hinweis
Affinitätsunterstützung für Server mit 33 bis 64 Prozessoren steht nur auf 64-Bit-Betriebssystemen zur Verfügung.
Die Affinitäts-E/A-Maskenoption bindet SQL Server Disk I/O an eine bestimmte Teilmenge von CPUs. In High-End-OLTP-Umgebungen (Online Transactional Processing, Onlinetransaktionsverarbeitung) für SQL Server kann diese Erweiterung die Leistung von SQL Server -Threads, die E/A verursachen, verbessern. Diese Erweiterung unterstützt keine Hardwareaffinität für einzelne Datenträger oder Datenträgercontroller.
Der Wert für die Affinitäts-E/A-Maske gibt an, welche CPUs auf einem Multiprozessorcomputer berechtigt sind, SQL Server-Datenträger-E/A-Vorgänge zu verarbeiten. Die Maske ist eine Bitmap, in der das erste Bit von rechts die CPU mit der niedrigsten Nummer angibt, CPU(0), das zweite Bit von rechts die CPU mit der nächsthöheren Nummer, CPU(1) usw. Um mehr als 32 Prozessoren zu konfigurieren, legen Sie sowohl die Affinitäts-E/A-Maske als auch die Affinität64-E/A-Maske fest.
Die Werte für die Affinitäts-E/A-Maske sind wie folgt:
Eine 1-Byte-Affinitäts-E/A-Maske deckt bis zu 8 CPUs auf einem Multiprozessorcomputer ab.
Eine 2-Byte-Affinitäts-E/A-Maske deckt bis zu 16 CPUs auf einem Multiprozessorcomputer ab.
Eine 3-Byte-Affinitäts-E/A-Maske deckt bis zu 24 CPUs auf einem Multiprozessorcomputer ab.
Eine 4-Byte-Affinitäts-E/A-Maske deckt bis zu 32 CPUs auf einem Multiprozessorcomputer ab.
Um mehr als 32 CPUs abzudecken, konfigurieren Sie eine Vier-Byte-Affinitäts-E/A-Maske für die ersten 32 CPUs und bis zu einer Vier-Byte-Affinity64-E/A-Maske für die verbleibenden CPUs.
Ein 1 Bit im Affinitäts-E/A-Muster gibt an, dass die entsprechende CPU berechtigt ist, SQL Server-Datenträger-E/A-Vorgänge auszuführen; Ein 0-Bit-Wert gibt an, dass für die entsprechende CPU keine SQL Server-Datenträger-E/A-Vorgänge geplant werden sollen. Wenn alle Bits auf Null festgelegt sind oder die Affinitäts-E/A-Maske nicht angegeben ist, wird SQL Server-Datenträger-E/A auf einen der CPUs geplant, die für die Verarbeitung von SQL Server-Threads berechtigt sind.
Da das Festlegen der SQL Server-Affinitäts-E/A-Maskenoption ein spezieller Vorgang ist, sollte sie nur bei Bedarf verwendet werden. In den meisten Fällen bietet die Standardaffinität von Windows 2000 oder Windows Server 2003 die beste Leistung.
Wenn Sie die Affinitäts-E/A-Maskenoption angeben, müssen Sie sie mit der Konfigurationsoption "Affinitätsmaske " verwenden. Aktivieren Sie nicht dieselbe CPU sowohl im Affinitäts-E/A-Maskenschalter als auch in der Affinitätsmaskenoption . Die Bits, die den einzelnen CPUs entsprechen, sollten sich jeweils in einem der folgenden drei Zustände befinden:
0 sowohl in der Affinitäts-E/A-Maskenoption als auch in der Affinitätsmaskenoption .
1 in der I/O-Affinitätsmaskenoption und 0 in der Affinitätsmaskenoption.
0 in der Affinitäts-E/A-Maskenoption und 1 in der Affinitätsmaskenoption .
Die Affinitäts-E/A-Maskenoption ist eine erweiterte Option. Wenn Sie die sp_configure im System gespeicherte Prozedur verwenden, um die Einstellung zu ändern, können Sie die Affinitäts-E/A-Maske nur ändern, wenn erweiterte Optionen anzeigen auf 1 festgelegt sind. In SQL Server erfordert die Neukonfiguration der Affinitäts-E/A-Maskenoption einen Neustart der SQL Server-Instanz.
Vorsicht
Konfigurieren Sie die CPU-Affinität nicht im Windows-Betriebssystem, konfigurieren Sie jedoch die Affinitätsmaske in SQL Server. Diese Einstellungen zielen auf dasselbe Ergebnis. Wenn die Konfigurationen inkonsistent sind, kann dies zu unvorhersehbaren Ergebnissen führen. Die CPU-Affinität in SQL Server sollte am besten mit der Option „sp_configure“ in SQL Server konfiguriert werden.
Siehe auch
Überwachen der Ressourcenverwendung (Systemmonitor)
RECONFIGURE (Transact-SQL)
Serverkonfigurationsoptionen (SQL Server)
sp_configure (Transact-SQL)