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.

chen Unterabfragen o<strong>der</strong> Joins zählen. Tools zur Generierung von Abfragen erstellen<br />

häufig diese sehr komplexen Arten von Abfragen.<br />

Zur Beeinflussung <strong>der</strong> Anzahl von Regeln für das Umschreiben von Abfragen, die<br />

auf eine SQL- o<strong>der</strong> XQuery-Anweisung angewendet werden, än<strong>der</strong>n Sie die Optimierungsklasse.<br />

Einige <strong>der</strong> Ergebnisse dieses Umschreibens <strong>der</strong> Abfrage können<br />

Sie mithilfe <strong>der</strong> EXPLAIN-Funktion anzeigen.<br />

Abfragen können durch die folgenden Methoden umgeschrieben werden:<br />

v Zusammenfügen von Operationen<br />

Zur Generierung einer Abfrage in ein Format, das möglichst wenige Operationen,<br />

insbeson<strong>der</strong>e SELECT-Operationen, aufweist, schreibt <strong>der</strong> SQL- <strong>und</strong> XQuery-Compiler<br />

Abfragen um, damit Abfrageoperationen zusammengefügt werden<br />

können. Die folgenden Beispiele zeigen einige <strong>der</strong> Operationen, die zusammengefügt<br />

werden können:<br />

– Beispiel - Zusammenfügen von Sichten<br />

Eine SELECT-Anweisung, die Sichten verwendet, kann die Joinfolge <strong>der</strong> Tabelle<br />

einschränken <strong>und</strong> zudem überflüssige Joins von Tabellen nach sich ziehen.<br />

Wenn die Sichten während des Umschreibens <strong>der</strong> Abfrage zusammengefügt<br />

werden, können diese Einschränkungen aufgehoben werden.<br />

– Beispiel - Umsetzungen von Unterabfragen in Joins<br />

Wenn eine SELECT-Anweisung eine Unterabfrage enthält, kann die Auswahl<br />

<strong>der</strong> Reihenfolgeverarbeitung <strong>der</strong> Tabelle eingeschränkt sein.<br />

– Beispiel - Eliminierung überflüssiger Joins<br />

Während des Umschreibens <strong>der</strong> Abfrage können überflüssige Joins entfernt<br />

werden, um die SELECT-Anweisung zu vereinfachen.<br />

– Beispiel - Gemeinsame Spaltenberechnungen<br />

Wenn eine Abfrage verschiedene Funktionen verwendet, kann durch Umschreiben<br />

die Anzahl <strong>der</strong> erfor<strong>der</strong>lichen Berechnungen reduziert werden.<br />

v Verschieben von Operationen<br />

Zur Generierung einer Abfrage mit <strong>der</strong> kleinstmöglichen Anzahl an Operationen<br />

<strong>und</strong> Vergleichselementen schreibt <strong>der</strong> Compiler die Abfrage um, um Abfrageoperationen<br />

zu verschieben. Die folgenden Beispiele zeigen einige Operationen,<br />

die verschoben werden können:<br />

– Beispiel - Eliminierung von DISTINCT<br />

Während des Umschreibens einer Abfrage kann das Optimierungsprogramm<br />

den Zeitpunkt verschieben, zu dem die DISTINCT-Operation durchgeführt<br />

wird, um den Aufwand für diese Operation zu verringern. In manchen Fällen<br />

kann die Operation DISTINCT vollständig entfernt werden.<br />

– Beispiel - Allgemeine Vergleichselementverschiebung (Pushdown)<br />

Während des Umschreibens von Abfragen kann das Optimierungsprogramm<br />

die Reihenfolge <strong>der</strong> Anwendung <strong>der</strong> Vergleichselemente än<strong>der</strong>n, sodass die<br />

Vergleichselemente, die die Auswahl in größerem Maße einschränken, zum<br />

frühstmöglichen Zeitpunkt angewandt werden.<br />

– Beispiel - Dekorrelierung<br />

In einer Umgebung mit partitionierten Datenbanken erfor<strong>der</strong>t das Verschieben<br />

von Ergebnismengen zwischen den Datenbankpartitionen hohen Aufwand.<br />

Den Umfang des Broadcastbetriebs (R<strong>und</strong>senden) an an<strong>der</strong>e Datenbankpartitionen<br />

o<strong>der</strong> die Anzahl <strong>der</strong> Broadcastvorgänge zu reduzieren, o<strong>der</strong> beides, gehört<br />

zu den Zielen des Umschreibens von Abfragen.<br />

v Beispiel - Umsetzen von Vergleichselementen<br />

Kapitel 3. Faktoren mit Auswirkung auf die Leistung 253

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!