Thread- und Taskarchitektur
Threads sind eine Funktion des Betriebssystems, die die Verteilung von Anwendungslogik auf mehrere gleichzeitige Ausführungspfade ermöglicht. Diese Funktion ist insbesondere dann hilfreich, wenn komplexe Anwendungen viele Tasks besitzen, die gleichzeitig ausgeführt werden können.
Wenn ein Betriebssystem eine Instanz einer Anwendung ausführt, wird eine als Prozess bezeichnete Einheit erstellt, um die Instanz zu verwalten. Der Prozess besitzt einen so genannten Ausführungsthread. Dabei handelt es sich um eine Folge von Programmieranweisungen, die vom Anwendungscode ausgeführt werden. In einer einfachen Anwendung beispielsweise, mit einem einzigen Satz an Anweisungen, die seriell ausgeführt werden können, gibt es nur einen Ausführungspfad oder -thread durch die Anwendung. Komplexere Anwendungen können mehrere Tasks besitzen, die gleichzeitig anstatt seriell ausgeführt werden können. Dies erfolgt, indem die Anwendung einen eigenen Prozess für jeden Task startet. Das Starten eines Prozesses ist jedoch ein ressourcenintensiver Vorgang, der vermieden werden kann, indem die Anwendung anstelle von Prozessen separate Threads startet. Dieser Vorgang nimmt weniger Ressourcen in Anspruch. Außerdem kann das Ausführen der einzelnen Threads unabhängig von anderen Threads geplant werden, die einem Prozess zugeordnet sind.
Threads ermöglichen, dass komplexe Anwendungen CPUs effizienter verwenden; dies gilt auch für Computer mit nur einer CPU. Bei einer einzigen CPU kann zu einem bestimmten Zeitpunkt immer nur ein Thread ausgeführt werden. Wenn ein Thread einen umfangreiche Vorgang ausführt, für die die CPU nicht verwendet wird, z. B. beim Lesen oder Schreiben vom bzw. auf den Datenträger, kann so lange ein anderer Thread ausgeführt werden, bis der erste Vorgang beendet ist. Da es möglich ist, Threads auszuführen, während andere Threads auf das Abschließen eines Vorgangs warten, kann eine Anwendung die CPU optimal nutzen. Dies gilt insbesondere für Multibenutzeranwendungen mit umfangreichen E/A-Vorgängen, wie es bei einem Datenbankserver der Fall ist. Computer mit mehreren Mikroprozessoren oder CPUs können gleichzeitig nur einen Thread pro CPU ausführen. Wenn ein Computer beispielsweise über acht CPUs verfügt, können gleichzeitig acht Threads ausgeführt werden.
In diesem Abschnitt
Planen von Batches oder Tasks in SQL Server
Beschreibt, wie Threads oder Fibers für Batches oder Tasks geplant werden.Reservieren von Threads für eine CPU
Beschreibt, wie das Betriebssystem Threads von Instanzen von SQL Server gleichmäßig auf die Mikroprozessoren eines Computers verteilt, und erläutert die affinity mask-Konfigurationsoption.Verwenden der Option lightweight pooling
Beschreibt die Bedingungen, unter denen es sich empfiehlt, die Lightweightpooling-Option zu aktivieren.Thread- und Fiberausführung
Beschreibt, wie Threads oder Fibers ausgeführt werden, und erläutert die Option zum Festlegen der Ausführungspriorität.Hinzufügen von CPUs im laufenden Systembetrieb
Beschreibt, wie SQL Server das Hinzufügen von CPUs im laufenden Systembetrieb unterstützt.Bewährte Methoden zum Ausführen von SQL Server auf Computern mit mehr als CPUs
Enthält Informationen zu bewährten Methoden, die beim Ausführen einer Instanz von SQL Server auf Computern, die über mehr als 64 CPUs verfügen, berücksichtigt werden sollten.