DB2 Universal Database - Systemverwaltung


Arten der Parallelität

Komponenten einer Task, wie zum Beispiel einer Datenbankabfrage, können parallel ausgeführt werden, um die Leistung erheblich zu erhöhen. Die Art der Task, die Datenbankkonfiguration und die Hardwareumgebung bestimmen, wie DB2 eine Task parallel ausführt. Diese Aspekte stehen in Wechselbeziehung zueinander und sollten bei der Arbeit am physischen und logischen Entwurf einer Datenbank im Zusammenhang betrachtet werden. In diesem Abschnitt werden die folgenden Arten von Parallelität beschrieben, die von DB2 unterstützt werden:

Ein-/Ausgabeparallelität

Wenn mehrere Behälter für einen Tabellenbereich vorhanden sind, kann der Datenbankmanager die parallele Ein-/Ausgabe nutzen. Parallele E/A bezeichnet den Vorgang, bei dem Lese- bzw. Schreiboperationen mit zwei oder mehr Ein-/Ausgabeeinheiten gleichzeitig durchgeführt werden. Auf diese Weise können Verbesserungen des Durchsatzes erzielt werden.

Die E/A-Parallelität ist eine Komponente der jeweiligen Hardwareumgebungen, die im Abschnitt Hardwareumgebungen beschrieben werden. In Tabelle 3 sind die Hardwareumgebungen aufgeführt, die am besten für parallele Ein-/Ausgabe geeignet sind.

Abfrageparallelität

Es gibt zwei Arten der Abfrageparallelität: abfrageübergreifende und abfrageinterne Parallelität.

Abfrageübergreifende Parallelität bezieht sich auf die Möglichkeit, daß mehrere Anwendungen gleichzeitig eine Datenbank abfragen können. Jede Abfrage wird unabhängig von allen anderen Abfragen ausgeführt, jedoch führt DB2 sie alle gleichzeitig aus. DB2 unterstützt diese Art der Parallelität seit jeher.

Abfrageinterne Parallelität bezeichnet die gleichzeitige Verarbeitung von Teilen einer einzelnen Abfrage mit Hilfe der partitionsinternen Parallelität bzw. der partitionsübergreifenden Parallelität (oder beiden).

Der Begriff Abfrageparallelität wird im gesamten Handbuch verwendet.

Partitionsinterne Parallelität

Der Begriff partitionsinterne Parallelität bezeichnet die Fähigkeit, eine Abfrage in mehrere Teile zu untergliedern. (Einige Dienstprogramme arbeiten ebenfalls mit dieser Art der Parallelität. Siehe Dienstprogrammparallelität.)

Bei der partitionsinternen Parallelität wird das, was im allgemeinen als eine einzige Datenbankoperation betrachtet wird (z. B. eine Indexerstellung, das Laden von Daten, SQL-Abfragen) in mehrere Teile unterteilt, von denen viele oder alle parallel innerhalb einer einzigen Datenbankpartition ausgeführt werden können.

Abbildung 22 zeigt eine Abfrage, die in vier Teile aufgeteilt ist, die parallel ausgeführt werden können, wobei die Ergebnisse schneller geliefert werden als bei serieller Ausführung der Abfrage. Die Teile sind jeweils Kopien voneinander. Zur Nutzung der partitionsinternen Parallelität muß die Datenbank entsprechend konfiguriert werden. Sie können den Grad der Parallelität selbst auswählen oder ihn vom System festlegen lassen. Als Grad der Parallelität stellt die Anzahl der Teile einer Abfrage dar, die parallel ausgeführt werden.

In Tabelle 3 sind die Hardwareumgebungen aufgeführt, die am besten für partitionsinterne Parallelität geeignet sind.

Abbildung 22. Partitionsinterne Parallelität

Partitionsinterne Parallelität

Partitionsübergreifende Parallelität

Der Begriff partitionsübergreifende Parallelität bezeichnet die Fähigkeit, eine Abfrage in mehreren Teilen über mehrere Partitionen einer partitionierten Datenbank auf einer oder mehreren Maschinen zu verteilen. Die Abfrage wird parallel ausgeführt. (Einige Dienstprogramme arbeiten ebenfalls mit dieser Art der Parallelität. Siehe Dienstprogrammparallelität.)

Bei der partitionsübergreifenden Parallelität wird das, was im allgemeinen als eine einzige Datenbankoperation betrachtet wird, (z. B. eine Indexerstellung, das Laden von Daten, SQL-Abfragen) in mehrere Teile unterteilt, von denen viele oder alle parallel über mehrere Partitionen einer partitionierten Datenbank hinweg auf einer oder mehreren Maschinen ausgeführt werden können.

Abbildung 23 zeigt eine Abfrage, die in vier Teile aufgeteilt ist, die parallel ausgeführt werden können, wobei die Ergebnisse schneller zurückgeliefert werden als bei serieller Ausführung in einer Einzelpartition.

Der Grad der Parallelität wird im wesentlichen durch die Anzahl der Partitionen, die Sie erstellen, und die Art und Weise der Definition der Knotengruppen bestimmt.

In Tabelle 3 sind die Hardwareumgebungen aufgeführt, die am besten für partitionsübergreifende Parallelität geeignet sind.

Abbildung 23. Partitionsübergreifende Parallelität

Partitionsübergreifende Parallelität

Gleichzeitiges Verwenden der partitionsinternen und partitionsübergreifenden Parallelität

Sie können die partitionsinterne Parallelität und die partitionsübergreifende Parallelität gleichzeitig nutzen. Diese Kombination bietet zwei Dimensionen der Parallelität, wodurch sich ein weiterer wesentlicher Anstieg der Verarbeitungsgeschwindigkeit für Abfragen ergibt:

Abbildung 24. Gleichzeitige partitionsübergreifende und partitionsinterne Parallelität

Gleichzeitige partitionsübergreifende und partitionsinterne Parallelität

Dienstprogrammparallelität

DB2-Dienstprogramme können mit partitionsinterner Parallelität arbeiten. Sie können außerdem die Vorteile der partitionsübergreifenden Parallelität nutzen. Wenn mehrere Datenbankpartitionen vorhanden sind, werden die Dienstprogramme in jeder der Partitionen parallel ausgeführt.

Das Dienstprogramm LOAD kann die Vorteile der partitionsinternen Parallelität und der E/A-Parallelität nutzen. Das Laden von Daten in eine Tabelle ist eine CDPU-intensive Operation. Das Dienstprogramm LOAD nutzt die Möglichkeit mehrerer Prozessoren bei Operationen wie dem Analysieren und Formatieren von Daten. Darüber hinaus kann es parallele E/A-Server zum gleichzeitigen Schreiben der Daten in Behälter verwenden. Im Handbuch Versetzen von Daten Dienstprogramme und Referenz finden Sie Informationen darüber, wie Sie die Parallelität für das Dienstprogramm LOAD aktivieren können.

In einer Umgebung mit partitionierten Datenbanken nutzt das Dienstprogramm AutoLoader die Vorteile der partitionsinternen, partitionsübergreifenden und der E/A-Parallelität durch paralleles Aufrufen des Befehls LOAD in jeder Datenbankpartition, in der sich die Tabelle befindet. Weitere Informationen zum Dienstprogramm AutoLoader finden Sie im Handbuch Versetzen von Daten Dienstprogramme und Referenz.

Während der Indexerstellung erfolgt das Durchsuchen und das nachfolgende Sortieren der Daten parallel. DB2 nutzt sowohl die E/A-Parallelität als auch die partitionsinterne Parallelität bei der Erstellung eines Index. Dadurch wird die Indexerstellung bei der Verarbeitung der Anweisung CREATE INDEX, beim Neustart (wenn ein Index als ungültig markiert ist) und bei der Reorganisation von Daten beschleunigt.

Sichern und Wiederherstellen von Daten sind Operationen, die wesentlich von der E/A-Leistung abhängig sind. DB2 nutzt sowohl die E/A-Parallelität als auch partitionsinterne Parallelität bei der Durchführung von BACKUP- und RESTORE-Operationen. Der Befehl BACKUP nutzt die E/A-Parallelität, indem er von mehreren Tabellenbereichsbehältern parallel liest und asynchron auf mehrere Sicherungsmedien parallel schreibt. In den Abschnitten zu den Befehlen BACKUP DATABASE und RESTORE DATABASE im Handbuch Command Reference finden Sie Informationen, wie Sie die Parallelität für diese beiden Dienstprogramme aktivieren können.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]