DB2 Universal Database - Systemverwaltung


Konfigurieren von E/A-Servern für Vorablesezugriff und parallele E/A

Zur Aktivierung des Vorablesezugriffs startet der Datenbankmanager separate Steuer-Threads, die als E/A-Server bezeichnet werden, um die Seitenleseoperationen durchzuführen. Infolgedessen gliedert sich die Verarbeitung einer Abfrage in zwei parallele Aktivitäten: Datenverarbeitung (CPU) und E/A-Operationen für Datenseiten. Die E/A-Server warten auf Vorableseanforderungen aus der CPU-Verarbeitungsaktivität. Diese Vorableseanforderungen enthalten eine Beschreibung der benötigten E/A-Operationen, um den erwarteten Datenbedarf zu befriedigen. Der Grund für den Vorablesezugriff bestimmt, wann und wie der Datenbankmanager Vorableseanforderungen generiert. (Weitere Informationen enthalten die Abschnitte Sequentieller Vorablesezugriff und Vorablesezugriff über Listen.)

Die folgende Abbildung veranschaulicht, wie E/A-Server zum Vorablesen von Daten in den Pufferpool verwendet werden.

Abbildung 93. Vorablesen von Daten mit Hilfe von E/A-Servern

SQLD0IOS

Die folgenden Schritte werden in Abbildung 93 gezeigt:

(1)
Die Benutzeranwendung übergibt die SQL-Anforderung an den Datenbankagenten.

(2), (3)
Der Datenbankagent stellt fest, daß ein Vorablesezugriff erfolgen soll, um die angeforderten Daten abzurufen und so die SQL-Anforderung zu erfüllen, und schreibt eine Vorableseanforderung an die E/A-Server-Warteschlange.

(4), (5)
Der erste verfügbare E/A-Server liest die Vorableseanforderung aus der Warteschlange und liest die Daten aus dem Tabellenbereich in den Pufferpool. In Abhängigkeit von der Anzahl der Vorableseanforderungen in der Warteschlange und der Anzahl der E/A-Server, die mit dem Konfigurationsparameter num_ioservers konfiguriert ist, können mehrere E/A-Server gleichzeitig Daten aus dem Tabellenbereich abrufen.

(6)
Der Datenbankagent führt die erforderlichen Aktionen an den Datenseiten im Pufferpool durch, um das Ergebnis der SQL-Anforderung an die Benutzeranwendung zurückzuliefern.

Durch Konfigurieren einer ausreichenden Anzahl von E/A-Servern mit Hilfe des Konfigurationsparameters num_ioservers kann die Leistung von Abfragen, für die der Vorablesezugriff auf Daten verwendet werden kann, erheblich gesteigert werden. Einige über den Bedarf hinaus konfigurierte E/A-Server beeinträchtigen die Leistung nicht, da überschüssige E/A-Server nicht verwendet werden und ihre Speicherseiten ausgelagert werden. Jeder E/A-Server-Prozeß hat eine Nummer. Der Datenbankmanager verwendet immer den verfügbaren Prozeß mit der niedrigsten Nummer, so daß einige der Prozesse mit höheren Nummern eventuell nie zum Einsatz kommen.

Bei der Festlegung, wie viele E/A-Server geeigneterweise konfiguriert werden sollten, sind folgende Punkte zu beachten:

Legen Sie den Wert des Parameters num_ioservers mindestens auf die Zahl der physischen Platten in der Datenbank fest, um die Möglichkeit für parallele E/A-Operationen zu maximieren.

Aktivieren paralleler E/A

In Umgebungen, in denen mehrere Behälter für einen Tabellenbereich vorhanden sind, kann der Datenbankmanager die parallele Ein-/Ausgabe initialisieren. Parallele E/A bezieht sich auf die Fähigkeit des Datenbankmanagers, mehrere E/A-Server zur Verarbeitung der E/A-Anforderungen einer einzelnen Abfrage zu verwenden. Jedem E/A-Server werden die E/A-Operationen für einen anderen Behälter zugeordnet, so daß mehrere Behälter parallel gelesen werden können. Die parallele Durchführung der E/A-Operationen kann zu bedeutenden Verbesserungen beim E/A-Durchsatz führen.

Obwohl für jeden Behälter ein getrennter E/A-Server die E/A-Operationen durchführt, ist die tatsächliche Anzahl der E/A-Server, die parallele E/A-Operationen durchführen können, auf die Anzahl der physischen Einheiten begrenzt, über die die angeforderten Daten verteilt sind. Dies bedeutet gleichzeitig, daß Sie so viele E/A-Server wie die Anzahl der physischen Einheiten benötigen.

Wie die parallele E/A initialisiert und verwendet wird, hängt von dem Grund für die Durchführung der parallelen E/A ab:

Für eine optimale Leistung bei paralleler E/A sollten Sie folgende Voraussetzungen erfüllen:

Gleichzeitiges Zuordnen mehrerer Seiten

SMS-Tabellenbereiche werden bei Bedarf erweitert. Diese Erweiterung erfolgt standardmäßig um jeweils eine Seite gleichzeitig. Sie können aber bei bestimmten Auslastungen (z. B. bei umfangreichen Einfügeoperationen (Bulk Insert)) die Leistung erhöhen, indem Sie das Programm db2empfa verwenden, um DB2 anzuweisen, die Tabellenbereiche jeweils um Gruppen von Seiten oder Gruppen durch EXTENTSIZE definierter Bereiche zu erweitern. Das Programm db2empfa befindet sich im Unterverzeichnis bin des Verzeichnisses sqllib. Durch Ausführen des Programms wird der Konfigurationsparameter multipage_alloc der Datenbank auf den Wert YES gesetzt. Weitere Informationen zu diesem Programm finden Sie im Handbuch Command Reference.

Eine andere Möglichkeit zur optimalen Verwendung des verfügbaren Speichers wird im Abschnitt Erweitern von Speicher behandelt.


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