View Full Version : SQL Optimierung (Anfängerfrage)
KingofKning
13-09-12, 14:48
Hallo *all,
ich habe mir mal den Artikel über den Plan-Cache durchgelesen und an meiner AS/400 ausprobiert.
Die Frage die sich mir stellt ist: Meine BI-Software Aruba gibt mir Daten zurück. Im Plancache steht das sql dafür 23 Sekunden gebraucht hat und "Creation of an Index is advised =yes" Number of primary Key Columns = 5 etc. etc.
Würde es denn jetzt etwas bringen wenn ich ein LF erstelle wo die 5 Felder als Schlüssel definiert sind?
Die PF-Datei möchte ich ungerne anfassen weil die halt dem ERP "gehört".
(Ich weis 23 Sekunden sind jetzt auch kein wirklicher Grund, aber es geht halt um die Logik)
Sprich reicht die blose Existenz des LFs oder müßte ich Aruba dann auch sagen des es die LF statt des PF benutzen soll.
GG
Hallo,
im Normalfall müsste die reine Existenz der logischen Sicht ausreichen. SQL wird diesen Zugriffspfad dann automatisch benutzen, wenn er zweckmässig erscheint.
Generell würde ich Dir aber davon abraten, einfach ohne Rückfrage beim Hersteller eine LF auf eine Datei einer Fremdsoftware zu legen. Mit einer vorhandenen LF ist z. B. kein DLTF auf die physische Datei mehr möglich und da kann ein Programm schon mal auf einen unerwarteten Fehler laufen.
Hallo *all,
ich habe mir mal den Artikel über den Plan-Cache durchgelesen und an meiner AS/400 ausprobiert.
Die Frage die sich mir stellt ist: Meine BI-Software Aruba gibt mir Daten zurück. Im Plancache steht das sql dafür 23 Sekunden gebraucht hat und "Creation of an Index is advised =yes" Number of primary Key Columns = 5 etc. etc.
Würde es denn jetzt etwas bringen wenn ich ein LF erstelle wo die 5 Felder als Schlüssel definiert sind?
Die PF-Datei möchte ich ungerne anfassen weil die halt dem ERP "gehört".
(Ich weis 23 Sekunden sind jetzt auch kein wirklicher Grund, aber es geht halt um die Logik)
Sprich reicht die blose Existenz des LFs oder müßte ich Aruba dann auch sagen des es die LF statt des PF benutzen soll.
GG
Du kannst folgendes machen. Einen sogenannten "Plan Cache Snapshot", d.h. den aktuellen Stand speichern/einfrieren wie auch immer.
Anschließend den verlangten Index (Keine logische Datei!!!) erstellen.
Die entsprechenden SQL-Statements erneut ausführen.
Der Query-Optimizer sucht sich den besten Zugriffsweg aus allen vorhandenen Key-Constraints, SQL Indices und logischen Dateien. Im Programm oder der Abfrage muss nichts geändert werden.
Anschließend erneut einen "Plan Cache Snapshot" erstellen und beide Snap Shots miteinander vergleichen.
(Geht alles über den System iNavigator).
Birgitta
Den PCS kenne ich gar nicht. Hab ich da was verpaßt?? Klingt zumindest interessant.
Ich kenne nur die "alte" Vorgehensweise sich mit STRDBG vor dem Ausführen SQL-Statements die Empfehlungen des Query Optimizers nachher im JOBLOG anzugucken und die entsprechenden Indizies zu erstellen.
Ist das nicht in etwa das Gleiche?
andreaspr@aon.at
14-09-12, 09:38
Im Infocenter der IBM gibts ein haufen an Informationen über den Plan Cache, falls jemand mehr darüber lesen möchte.
Plan Cache (http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/rzajq/rzajqcache.htm)
Creating SQL plan cache snapshots (http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/rzajq/rzajqplancachesnapshot.htm)
lg Andreas
Den PCS kenne ich gar nicht. Hab ich da was verpaßt?? Klingt zumindest interessant.
Ich kenne nur die "alte" Vorgehensweise sich mit STRDBG vor dem Ausführen SQL-Statements die Empfehlungen des Query Optimizers nachher im JOBLOG anzugucken und die entsprechenden Indizies zu erstellen.
Ist das nicht in etwa das Gleiche?
Vielleicht liegt es daran, dass kaum jemand mal in den System i Navigator reinschaut, weil bekannte Forumsmitglieder ihn grundsätzlich als OpsNerv, Lachnummer, Marketing Gag u.ä. bezeichnen.
Zugegeben, die ersten Versionen waren desolat, aber mindestens seit V5R4 ist der System i Navigator das strategische Produkt für SQL (Datenbanken-Entwicklung und Analyse). Insbesondere was die Analyse angeht, wurden einige brauchbare Tools hinzugefügt.
Birgitta
KingofKning
14-09-12, 12:41
ertappt ;-)
BTW.
Wenn ich im Index Advisor die Vorschläge alle lösche, baut der die dann neu auf?
Habe da noch Vorschläge von 2008 drin..
GG
Zugegeben, die ersten Versionen waren desolat,
Birgitta
... die hast Du aber auch schon bejubelt!!!
aber mindestens seit V5R4 ist der System i Navigator das strategische Produkt für SQL (Datenbanken-Entwicklung und Analyse). Birgitta
... so wie Office Vision, Lotus Notes, Thinkpad, Visual Age for Java?
Auch Oops Nerv wird an uns vorübergehen...
D*B
PS: ist bereits passiert, der Systems Director Navigator for i ist jetzt strategisch (du solltest mal die neusten Reklamezettel von IBM inhalieren)
andreaspr@aon.at
14-09-12, 13:15
Wenn ich im Index Advisor die Vorschläge alle lösche, baut der die dann neu auf?
Wenn der Optimizer einen Index vorschlägt, dann wird der im Index Advisor eingetragen. Oder der Counter (Anzahl der Empfehlungen) erhöht.
Wie Birgitta schon sagte wäre es sinnvoll diesen zu leeren und 1-2 Wochen beobachten.
Und im übrigen bin ich auch ein Freund vom Navigator. Die alternative wäre der Green-Screen, wo es von extrem schwer bis nahezu unmöglich ist, alle Informationen halbwegs genau so gut aufzubereiten sind wie es der Navigator macht (z.B. Visual Explain und zusammenfassungen des Monitors)
PS: ist bereits passiert, der Systems Director Navigator for i ist jetzt strategisch (du solltest mal die neusten Reklamezettel von IBM inhalieren)
.... aber nicht für die Datenbank! Das ist und bleibt vorerst der System i Navigator, zumindest braucht es noch seine Zeit bis diese Dinge auf die Weboberfläche (wenn überhaupt) umgestellt sind! Hab' ich gerade erst eroiert!
Birgitta