29.12.2013 Aufrufe

Fehlerbehebung und Optimieren der Datenbankleistung

Fehlerbehebung und Optimieren der Datenbankleistung

Fehlerbehebung und Optimieren der Datenbankleistung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2. Semantik prüfen<br />

Der Compiler stellt sicher, dass keine Inkonsistenzen zwischen Teilen <strong>der</strong> Anweisung<br />

bestehen. Ein Beispiel ist die Überprüfung durch den Compiler, ob<br />

eine für die Skalarfunktion YEAR angegebene Spalte mit dem Datentyp DATE-<br />

TIME (Datum/Uhrzeit) definiert wurde.<br />

Der Compiler fügt außerdem die Bedingungssemantik in das Abfragediagrammmodell<br />

ein, zu <strong>der</strong> die Auswirkungen <strong>der</strong> referenziellen Integritätsbedingungen,<br />

<strong>der</strong> Prüfungen auf Integritätsbedingungen in Tabellen, <strong>der</strong> Trigger <strong>und</strong><br />

<strong>der</strong> Sichten gehören. Das Abfragediagrammmodell enthält die gesamte Semantik<br />

für die Abfrage, einschließlich <strong>der</strong> Abfrageblöcke, Unterabfragen, Korrelationen,<br />

abgeleiteten Tabellen, Ausdrücke, Datentypen, Datentypumsetzungen, Codepageumsetzungen<br />

<strong>und</strong> <strong>der</strong> Verteilungsschlüssel.<br />

3. Abfrage umschreiben<br />

Der Compiler verwendet die im Abfragediagrammmodell gespeicherte globale<br />

Semantik, um die Abfrage in eine Form umzusetzen, die leichter optimiert werden<br />

kann. Anschließend speichert er das Ergebnis im Abfragediagrammmodell.<br />

Zum Beispiel kann <strong>der</strong> Compiler ein Vergleichselement verschieben <strong>und</strong> somit<br />

die Ebene än<strong>der</strong>n, auf <strong>der</strong> es angewendet wird, um dadurch potenziell die Abfrageleistung<br />

zu erhöhen. Diese Art <strong>der</strong> Verschiebung einer Operation wird als<br />

allgemeine Vergleichselementverschiebung (Pushdown) bezeichnet. In einer Umgebung<br />

mit partitionierten Datenbanken sind die folgenden Abfrageoperationen<br />

etwas rechenintensiver:<br />

v Spaltenberechnungen (Aggregation)<br />

v Umverteilen von Zeilen<br />

v Korrelierte Unterabfragen, d. h. Unterabfragen, die einen Verweis auf eine<br />

Spalte in einer Tabelle enthalten, die sich außerhalb <strong>der</strong> Unterabfrage befindet<br />

Für einige Abfragen in einer Umgebung mit partitionierten Datenbanken kann<br />

eine Dekorrelierung im Rahmen des Umschreibens <strong>der</strong> Abfrage erfolgen.<br />

4. Pushdown-Analyse (nur fö<strong>der</strong>ierte Datenbanken)<br />

Die Hauptfunktion dieses Schrittes ist, dem Optimierungsprogramm eine Empfehlung<br />

zu liefern, ob eine Operation an eine Datenquelle verschoben <strong>und</strong> fern<br />

ausgewertet werden kann, was als Pushdown bezeichnet wird. Diese Art von<br />

Pushdown-Aktivität ist für Datenquellenabfragen spezifisch <strong>und</strong> stellt eine Erweiterung<br />

zur allgemeinen Vergleichselementverschiebung dar.<br />

5. Zugriffsplan optimieren<br />

Mit dem Abfragediagrammmodell als Eingabe generiert die Optimierungskomponente<br />

des Compilers zahlreiche alternative Ausführungspläne zur Erfüllung<br />

<strong>der</strong> Abfrage. Das Optimierungsprogramm schätzt den Ausführungsaufwand für<br />

jeden <strong>der</strong> Pläne mithilfe <strong>der</strong> Statistiken für Tabellen, Indizes, Spalten <strong>und</strong> Funktionen<br />

ab. Anschließend wählt es den Plan mit dem geringsten geschätzten<br />

Ausführungsaufwand aus. Das Optimierungsprogramm verwendet das Abfragediagrammmodel,<br />

um die Abfragesemantik zu analysieren <strong>und</strong> Informationen<br />

zu einer Vielzahl von Faktoren, einschließlich Indizes, Basistabellen, abgeleitete<br />

Tabellen, Unterabfragen, Korrelationen <strong>und</strong> Rekursion, zu erhalten.<br />

Das Optimierungsprogramm kann außerdem einen an<strong>der</strong>en Typ von Verschiebeoperation<br />

(Pushdown) in Betracht ziehen, nämlich für Spaltenberechnungen<br />

<strong>und</strong> Sortierungen. Die Leistung kann erhöht werden, wenn die Auswertung dieser<br />

Operationen an die Komponente <strong>der</strong> Datenverwaltungsservices (DMS, Data<br />

Management Services) verschoben werden kann.<br />

Das Optimierungsprogramm berücksichtigt auch, ob es Pufferpools verschiedener<br />

Größen gibt, wenn es die Auswahl <strong>der</strong> Seitengröße festlegt. Es berücksich-<br />

Kapitel 3. Faktoren mit Auswirkung auf die Leistung 251

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!