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.

v<br />

v<br />

– Klausel GROUP BY<br />

– Klausel ORDER BY<br />

– Klausel WHERE XMLEXISTS<br />

– SELECT-Liste<br />

Sie können die EXPLAIN-Funktion auch verwenden, um zu ermitteln, ob ein an<strong>der</strong>er<br />

Index o<strong>der</strong> gar kein Index besser wäre. Führen Sie nach <strong>der</strong> Erstellung eines<br />

neuen Index den Befehl RUNSTATS aus, um Statistikdaten für diesen Index zu<br />

erfassen, <strong>und</strong> kompilieren Sie anschließend die Abfrage erneut. Mit <strong>der</strong> Zeit stellen<br />

Sie (anhand von EXPLAIN-Daten) vielleicht fest, dass eine Tabellensuche anstelle<br />

einer Indexsuche verwendet wird. Dies kann sich aus einer Än<strong>der</strong>ung in<br />

<strong>der</strong> Clusterbildung <strong>der</strong> Tabellendaten ergeben. Wenn <strong>der</strong> zuvor verwendete Index<br />

nun ein niedriges Clusterverhältnis aufweist, sollten Sie folgende Maßnahmen<br />

in Erwägung ziehen:<br />

– Reorganisieren <strong>der</strong> Tabelle, um die Daten diesem Index entsprechend in Clustern<br />

anzuordnen<br />

– Ausführen des Befehls RUNSTATS zur Erfassung von Statistikdaten für Index<br />

<strong>und</strong> Tabelle<br />

– Erneutes Kompilieren <strong>der</strong> Abfrage<br />

Stellen Sie anhand von EXPLAIN-Ausgaben fest, ob das Reorganisieren <strong>der</strong> Tabelle<br />

zu einer Verbesserung des Zugriffsplans geführt hat.<br />

Zugriffstyp<br />

Analysieren Sie die EXPLAIN-Ausgabe <strong>und</strong> suchen Sie nach Datenzugriffstypen,<br />

die für den Typ von Anwendung, die Sie ausführen, normalerweise nicht optimal<br />

sind. Beispiele:<br />

– OLTP-Abfragen (Onlinetransaktionsverarbeitung)<br />

OLTP-Anwendungen bieten sich in <strong>der</strong> Regel für Indexsuchen mit bereichsbegrenzenden<br />

Vergleichselementen an, weil sie meist nur wenige Zeilen zurückgeben,<br />

die durch ein Gleichheitsvergleichselement für eine Schlüsselspalte ermittelt<br />

werden. Wenn Ihre OLTP-Abfragen eine Tabellensuche verwenden,<br />

können Sie die EXPLAIN-Daten analysieren, um herauszufinden, warum keine<br />

Indexsuche verwendet wird.<br />

– Reine Suchabfragen<br />

Die Suchbedingungen für eine „reine Suchabfrage” können sehr vage sein,<br />

was bewirkt, dass eine große Menge von Zeilen den Bedingungen entspricht.<br />

Wenn sich Benutzer normalerweise nur einige Anzeigeseiten von Ausgabedaten<br />

ansehen, können Sie dafür sorgen, dass nicht die gesamte Antwortmenge<br />

berechnet werden muss, bevor einige Ergebnisse zurückgegeben werden. In<br />

diesem Fall unterscheiden sich die Ziele des Benutzers vom gr<strong>und</strong>legenden<br />

Arbeitsprinzip des Optimierungsprogramms, das versucht, den Ressourcenbedarf<br />

für die gesamte Abfrage <strong>und</strong> nicht nur für die ersten wenigen Datenanzeigen<br />

zu minimieren.<br />

Wenn zum Beispiel die EXPLAIN-Ausgabe zeigt, dass Operatoren sowohl für<br />

Mischjoins als auch für Sortierungen im Zugriffsplan verwendet wurden,<br />

wird die gesamte Antwortmenge in einer temporären Tabelle gespeichert, bevor<br />

Zeilen an die Anwendung zurückgegeben werden. In diesem Fall können<br />

Sie versuchen, den Zugriffsplan durch die Verwendung <strong>der</strong> Klausel OPTIMI-<br />

ZE FOR in <strong>der</strong> SELECT-Anweisung zu än<strong>der</strong>n. Wenn Sie diese Option angeben,<br />

kann das Optimierungsprogramm versuchen, einen Zugriffsplan auszuwählen,<br />

<strong>der</strong> nicht die gesamte Antwortmenge in einer temporären Tabelle<br />

erstellt, bevor die ersten Zeilen an die Anwendung zurückgegeben werden.<br />

Joinmethoden<br />

354 <strong>Fehlerbehebung</strong> <strong>und</strong> <strong>Optimieren</strong> <strong>der</strong> <strong>Datenbankleistung</strong>

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!