Anmelden

View Full Version : empfolene Indices



Seiten : 1 2 [3]

andreaspr@aon.at
28-02-13, 10:22
DB Monitor und dann Visual Explain (bei beiden Varianten).
Dort siehst du auch noch mehr als im Debug oder beim STRSQL F13.
Oder

Du kannst dir im Navigator mit Rechts-Klick auf "Datenbanken" den Job anschauen der die Abfrage durchführt --> dann Details --> und auf Visual Explain.

Robi
28-02-13, 10:56
und was ich dann sehe, ist das, was bei

sbmjob cmd(runsqlstm ...) verwendet wird ?

ok, ich versuchs

Robi

andreaspr@aon.at
28-02-13, 12:06
Genau, da siehst du dann nämlich die Einstellungen die wirklich verwendet wurden.
Falls irgendwo was übersteuert wurde (JOBD, QAQQINI, usw.) siehst du es dort.
Damit kannst du dann deine Umgebung mit der vom SBMJOB vergleichen.

Vielleicht verwendet der SBMJOB einen Zugriffplan, den du im STRSQL nicht verwendest. Dann solltest du aber zumindest auch die Gründe sehen können warum das so ist. Speziell für die einzelnen Steps des Zugriffplans.

Fuerchau
28-02-13, 12:17
Ein wesentlicher Unterschied zwischen Batch/Embedded und STRSQL ist die Dialog-Optimierung von STRSQL.
STRSQL optimiert nämlich für die schnelle Anzeige der ersten Datensätze.
Im Batch geht SQL davon aus, dass alle Sätze eines Cursors verarbeitet werden sollen, was halt zu einer etwas anderen Optimierung führen kann und somit zur verwendung anderer Indizes als in STRSQL vorgeschlagen.

Bei embedded SQL kann man noch "optimize for n rows" angeben, wobei ich da wirklich keinen Unterschied in der Performance bzw. Zugrifsspfaden festgestellt habe.
Ich denke, dass dies wohl nur noch Kommentar und für die alte SQE galt.

BenderD
28-02-13, 12:39
Bei embedded SQL kann man noch "optimize for n rows" angeben, wobei ich da wirklich keinen Unterschied in der Performance bzw. Zugrifsspfaden festgestellt habe.
Ich denke, dass dies wohl nur noch Kommentar und für die alte SQE galt.

... das geht auch interaktiv und hat bei hinreichend großen Datenbeständen auch durchaus Auswirkungen (optimize für wenige Zeilen favorisiert tendenziell Zugriffspfade, optimize für alle favorisiert bei niedriger Selektivität full table scans...).

Verwendung eines bestimmten Index und Join Reihenfolge lässt sich häufig durch Sortierung forcieren.
Bei großen Datenmengen hilft sehr oft das ziehen von Extrakten vor join Operationen.
Saubere Normalisierung und referential constraints sind auch meist hilfreich.

D*B, der ab und an mit größeren Datenmengen zu tun hat...

Robi
28-02-13, 13:45
Habe mir nun den Job mal mit V.expl. angesehen.
Toll ...

ein Bild mit einem riesen Trichter.
Viele Infos (die mir nix sagen) im rechten Kasten.

Das kann ich nicht wechseln.
Und um mich da richtig rein zu knieen fehlt leider die Zeit.

Danke allen Helfern
Robi