27.12.2012 Aufrufe

SChWERPUNKT - Midrange Magazin

SChWERPUNKT - Midrange Magazin

SChWERPUNKT - Midrange Magazin

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.

SQL-Analyse mit Visual Explain V6R1, Teil 1<br />

SQL-Abfragen<br />

Möglicherweise haben Sie sich bisher beim Einsatz von SQL-Abfragen eher dafür interessiert,<br />

wie Ihr Select-Statement aufgebaut sein muss, damit Sie die benötigten Daten erhalten.<br />

Sie haben die Abfrage geschrieben, ausgeführt und sich anschließend unter Umständen<br />

gefragt, warum eine so einfache Anfrage „soooo“ lange braucht. Mit dem guten alten „read“<br />

wäre das alles viel schneller gegangen, mag so mancher sattelfester und gestandener<br />

RPG-Spezialist dann sagen.<br />

Ganz so einfach ist dieser Vergleich<br />

jedoch nicht: In Ihrem RPG-Programm<br />

müssen Sie die Logik kodieren,<br />

d. h. Sie bestimmen im RPG-Programm<br />

nicht nur, welche Daten benötigt werden,<br />

sondern codieren auch den Algorithmus,<br />

der diese Daten zur Verfügung<br />

stellt. Und hier ist der entscheidende<br />

Unterschied: Wenn Sie eine SQL-Abfrage<br />

erstellen, definieren Sie das Abfrageergebnis,<br />

nicht aber den Weg der<br />

Ausführung. Über den geeigneten Ausführungsplan<br />

entscheidet das System.<br />

Genauer gesagt, der Teil des Systems,<br />

der Query Engine beziehungsweise Optimizer<br />

genannt wird. Der Optimizer<br />

schätzt unterschiedliche Ausführungskosten<br />

für unterschiedliche Zugriffswege<br />

und wird sich letztendlich für<br />

den Zugriffsweg mit dem geringsten<br />

Kostenfaktor entscheiden. Mit Kosten<br />

ist hier gemeint, dass sowohl der Aufwand<br />

im Eingabe-/Ausgabe-Bereich<br />

(I/O-Kosten) als auch der Kostenfaktor<br />

im Arbeitsspeicher (CPU-Kosten) für<br />

die Verarbeitung der Daten berücksichtigt<br />

wird. Aufgabe des Optimizers ist<br />

es nun, bei der Gestaltung des Zugriffs<br />

zwischen eben diesen Kosten abzuwägen<br />

und den kostengünstigsten Ausführungsplan<br />

einzusetzen. Visual Explain<br />

ist das strategische IBM Interface, um<br />

die gewählten Ausführungspläne zu<br />

visualisieren. Beide SQL-Engines werden<br />

hierbei unterstützt – CQE und SQE.<br />

Hierfür werden alle notwendigen Ver-<br />

arbeitungsschritte sowie die verwendeten<br />

temporären und permanenten Objekte<br />

graphisch aufbereitet dargestellt.<br />

Verschiedene Icons repräsentieren<br />

einzelne Verarbeitungsschritte und die<br />

verwendeten Objekte. Zu jedem verwendeten<br />

Objekt stehen weiterführende<br />

Informationen zur Verfügung. Wenn<br />

Sie Visual Explain aus der Prozedurumgebung<br />

von System i Navigator aus aufrufen,<br />

platzieren Sie den Cursor auf ein<br />

SQL-Statement, dessen Ausführungsplan<br />

angezeigt werden soll. Klicken Sie<br />

anschließend auf eines der verfügbaren<br />

Icons oder wählen Sie den entsprechenden<br />

Menüpunkt (Bild 1).<br />

Erklären [STRg + E] erlaubt die<br />

Erstellung eines grafischen Ausführungsplanes<br />

ohne Ausführung der<br />

SQL-Abfrage. Intern wird dem Attribut<br />

„QUERY_TIME_LIMIT“ der Optionsdatei<br />

QAQQINI der Wert Null zugewiesen,<br />

um die Ausführung der Abfrage zu verhindern.<br />

Ausführungspläne der SQL-<br />

1<br />

VISUAL EXPLAIN AUFRUFEN<br />

Abfragen, die viele Stunden laufen,<br />

können in wenigen Sekunden angezeigt<br />

werden. Die angezeigten Informationen<br />

über die Laufzeitumgebung könnten<br />

in diesem Fall aber von tatsächlichen<br />

Umgebungseinstellungen abweichen.<br />

Zudem könnte es passieren, dass die<br />

Ausführungspläne komplexer Abfragen<br />

nicht dargestellt werden. Probieren Sie<br />

es einfach aus!<br />

Ausführen und Erklären [STRg + u]<br />

überträgt die Abfrage ebenfalls an den<br />

Optimizer für den Optimierungsprozess.<br />

Anschließend wird das Statement<br />

aber ausgeführt und erst nach der Ausführung<br />

erfolgt die Darstellung des<br />

Ausführungsplanes. Visual Explain<br />

könnte ein Ergebnis liefern, das nicht<br />

die aktuelle Laufzeitumgebung widerspiegelt,<br />

wenn das SQL-Statement in<br />

Umgebungen ausgeführt wird, die sich<br />

schnell und häufig ändern.<br />

Während der Ausführung erklären<br />

[STRg + W] wurde aus diesem Grund<br />

10/2010 · MIDRANGE MAgAZIN<br />

37

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!