PDA

View Full Version : Index Advisor



Seiten : [1] 2 3

KingofKning
02-10-12, 10:12
Hallo *all,

wir hatten ja zuletzt das Thema Navigator und Index Advisor.
Ich schaue mir ds Teil auch regelmäßig an, habe aber jetzt festegestellt das er z.B. bei Aktiv Jobs ein idx-arusta03jn anzeigt, im Advisor aber dazu nichts sagt. Müßte das Teil dort dann nicht mit einem Vorschlag auftauchen?

GG

B.Hauser
02-10-12, 18:20
Hallo *all,

wir hatten ja zuletzt das Thema Navigator und Index Advisor.
Ich schaue mir ds Teil auch regelmäßig an, habe aber jetzt festegestellt das er z.B. bei Aktiv Jobs ein idx-arusta03jn anzeigt, im Advisor aber dazu nichts sagt. Müßte das Teil dort dann nicht mit einem Vorschlag auftauchen?

GG

Dem Namen nach zu urteilen ist arusta03jn ein vorhandener Index oder eine vorhandene logische Datei, die verwendet wird.

Im Index-Advisor bzw. in der Datei SYSIXADV werden seit der Installation von Release V5R3? (oder V5R4) alle Index-Vorschläge der beiden Query Engines (CQE und SQE) gesammelt. Ebenso werden die MTI (Maintained Temporary Indexes), die von der SQE erstellt wurden in dieser Tabelle geführt.

Die Datei SYSIXADV wird nicht automatisch bereinigt, d.h. selbst wenn Du einen vorgeschlagenen Index erstellst, wird der Eintrag nicht automatisch gelöscht. Der Anwender/Programmierer muss dies selbst vornehmen.

Wenn Du bislang noch keine Hand an den systemweiten Index-Advisor gelegt hast, würde ich vorschlagen zunächst alle Einträge aus dieser Datei zu entfernen und neu auflaufen zu lassen. In einigen Tagen oder Wochen kannst Du dann die Einträge prüfen und die Entscheidung treffen, ob entsprechende Indices angelegt werden oder ob lediglich die Einträge aus dem Advisor entfernt werden.

Birgitta

KingofKning
03-10-12, 08:30
Hallo Birgitta,

arusta03jn ist eine logische Datei mit einem join auf auf eine andere Datei ohne Key.

Ich hatte alle Einträge im Advisor gelöscht, es kamen auch schon Vorschläge die ich umgesetzt habe, und anschließend fragt er ja ob er den Vorschlag löschen soll.

Nur für diese Abfrage hat er mir bisher noch keinen Vorschlag gemacht obwohl ich den Abruf 3 oder 4mal an diesem Tag gemacht habe und er immer wieder mit idx-... im wrkactjob zu sehen war.


Werde das Ganze mal beobachten.

GG

KM
04-10-12, 08:55
Hallo,

ich bin eigentlich immer davon ausgegangen, dass im Index Advisor alle Vorschläge angezeigt werden. Jetzt ist mir aufgefallen, dass im Index Advisor nur 60 Einträge vorhanden sind, während in der Datei SYSIXADV über 17000 Sätze drin sind.
Warum werden die nicht angezeigt?
Kann ich die 17000 Sätze bedenkenlos löschen?

Gruß,
KM

Christian Bartels
04-10-12, 09:01
Wenn in der WRKACTJOB-Spalte Funktion "IDX-ARUSTA03JN" angezeigt wird, heißt das, dass der Index als Beschreibung zwar vorhanden, in seiner Struktur aber ungültig war und neu aufgebaut werden muss. Die Ursache könnte im Parameter Zugriffspfadwartung (MAINT) der logischen Datei liegen, es kann aber auch andere Gründe haben (z.B., dass die unterliegenden physischen Dateien unmittelbar vor der Operation reorganisiert oder zurückgespeichert wurden).

Dass der Index-Advisor den Index nicht anzeigt, könnte entweder daran liegen, dass die Indexbeschreibung ja da ist, oder daran, dass auf die Datei nicht über SQL zugegriffen wird. Der Index-Advisor ist Bestandteil der SQL Query Engine und wird nicht benutzt, wenn man ohne SQL (z.B. mit READE aus RPG) auf die Daten zugreift.

Mit freundlichen Grüßen,
Christian Bartels.

KM
04-10-12, 09:20
Dass der Index-Advisor den Index nicht anzeigt, könnte entweder daran liegen, dass die Indexbeschreibung ja da ist, oder daran, dass auf die Datei nicht über SQL zugegriffen wird. Der Index-Advisor ist Bestandteil der SQL Query Engine und wird nicht benutzt, wenn man ohne SQL (z.B. mit READE aus RPG) auf die Daten zugreift.

Aber warum sind dann so viele Einträge bei uns in der Datei SYSIXADV vorhanden und werden aber nicht angezeigt?

Gruß,
KM

Fuerchau
04-10-12, 09:55
Wenn man nicht per SQL auf eine Datei zugreift wird nur dann ein Index aufgebaut, wenn
a) die LF mit Maintanance nicht aktuell ist
b) eine Join-LF mit DYNSLT definiert ist (hier hilft auch kein fester Index)
In allen anderen Fällen ist immer SQL der Verursacher.

andreaspr@aon.at
04-10-12, 10:05
Jetzt ist mir aufgefallen, dass im Index Advisor nur 60 Einträge vorhanden sind, während in der Datei SYSIXADV über 17000 Sätze drin sind.
Warum werden die nicht angezeigt?
Kann ich die 17000 Sätze bedenkenlos löschen?

Probier mal folgendes:

SELECT count(*) TABLE_SCHEMA
FROM SYSIXADV
WHERE left (TABLE_SCHEMA, 4) <> 'QSYS'

Der Navigator filtert Vorschläge für System-Objekte aus. (Gott sei dank!)
Mit der oberen Abfrage solltest du wieder dem sehr nahe kommen.
Wobei die Einträge in der SYSIXADV nur auf die Vorschläge der Datenbank für den System ASP beinhaltet.
Die Vorschläge für eingebundene Datenbanken in aderen ASPs sind wieder wo anders.

lg Andreas

andreaspr@aon.at
04-10-12, 10:12
Man kann auch analysieren was der Navigator macht, indem man einfach einen DB-Monitor nebenbei mitlaufen lässt.
Hatte noch die SYS% vergessen :)


INSERT INTO QTEMP.SYSIXADV
SELECT * FROM QSYS2.SYSIXADV
WHERE TABLE_SCHEMA NOT LIKE 'SYS%'
AND TABLE_SCHEMA NOT LIKE 'QSYS%'

KingofKning
04-10-12, 11:34
Wenn in der WRKACTJOB-Spalte Funktion "IDX-ARUSTA03JN" angezeigt wird, heißt das, dass der Index als Beschreibung zwar vorhanden, in seiner Struktur aber ungültig war und neu aufgebaut werden muss. Die Ursache könnte im Parameter Zugriffspfadwartung (MAINT) der logischen Datei liegen, es kann aber auch andere Gründe haben (z.B., dass die unterliegenden physischen Dateien unmittelbar vor der Operation reorganisiert oder zurückgespeichert wurden).



Ich habe die Auswertung in der BI-Software 2 mal hintereinanderlaufen lassen, ohne das irgendwelche Daten verändert wurden. Eigentlich hätte er das auch aus dem Cache erledigen können müßen. Die Daten werden erst im Nachtlauf aktualisiert.