-
Nun ja, inzwischen müsstest du mich gut genug kennen, dass ich gerade was Index, Sortierfolge und CCSID angeht relativ gut auskenne.
Im Joblog stand i.Ü. auch immer, dass der Zugriffsplan neu aufgebaut wurde.
Da ich ab und an mit den automatischen SQLPKG's (ich arbeite über ODBC), insbesonders wegen Berechtigungen Probleme habe, lege ich diese immer in die QTEMP, dann sind sie anschließend auch wieder weg.
Der SQL ist eigentlich ziemlich simpel, eine Haupttabelle und 5 Left Joins, sogar gecasteter Join (s.o.), der sogar korrekt ausgeführt wird.
Aber wie gesagt, seit Setzen der QAQQINI ist dieses Problem ja gelöst.
Was einfach mein Hauptproblem ist, ist dieser blöde SQL0666 (Zeitlimit), der überhaupt nichts mit dem späteren tatsächlichen SQL zu tun hat.
Wie ist zu erklären, dass (ich nehme mal an) die CQE auf 40.000 Sekunden kommt (stelle ich den Timeout auf NOMAX (-1)) kommt der 1. Block aber nach ca. 100 Sekunden, und die SQE 400 Sekunden annimmt und das Ergebnis in 13 Sekunden liefert ?
Diese Zeitschätzungen halten meist mehr auf, als sie tatsächlich wert sind.
Ich habe ehrlich noch nie eine annähernd korrekte Schätzung erlebt.
Gut, ich gebe zu, dass meine SQL's manchmal nicht so einfach sind.
Da ich aber mit einem BI-Programm (das ist die FTSolutions) auf vorhandene ERP's zugreife kommt natürlich eine Umstellung der fremden ERP nicht in Frage.
Nun noch kurz zum SQL:
With cQLPAU
.CommandText = "select aefirm, aewknr, aetada, aetenr, aewacd, aekurs, double(aeefwt) as aeefwt, double(aeefmg) as aeefmg, double(aeplwt) as aeplwt, double(aeplmg) as aeplmg, aelakz, aelpnn, substr(aelpnn, 1, 7) as k1aunr "
.CommandText = .CommandText & ", aefirm as k1firm, aewknr as k1wknr, aeabtl as k1abtg, aeafat as k1aart, digits(aekdnr) as k1akdn, digits(aevenr) as k1avsn, aequel, k1aref, k1rfda "
.CommandText = .CommandText & ", p1rpan, aelagr as p2lanr, aeprgr as p1prgr, teprkl as p1prkl, teprka as p1prka, aetenr as p1tenr, aevpcd as p1vpcd, aevn01 as p1vtn1, aevn02 as p1vtn2 "
.CommandText = .CommandText & ", case aequel when 'V' then kpkdin else lpsnbe end as lpsnbe, lpdfsv "
.CommandText = .CommandText & " from " & fLib & ".lpau "
.CommandText = .CommandText & " inner join " & fLib & ".teil on aefirm=tefirm and aewknr=tewknr and aetenr=tetenr"
.CommandText = .CommandText & " left join " & fLib & ".afp1 on aefirm=p1firm and aewknr=p1wknr and zoned(case aequel when 'V' then substr(aelpnn, 1, 7) else '0' end , 7, 0)=p1afnr and aehpos=p1afhp "
.CommandText = .CommandText & " left join " & fLib & ".afk1 on aefirm=k1firm and aewknr=k1wknr and zoned(case aequel when 'V' then substr(aelpnn, 1, 7) else '0' end , 7, 0)=k1afnr "
.CommandText = .CommandText & " left join " & fLib & ".lplp on aefirm=lpfirm and aewknr=lpwknr and aetenr=lptenr and aekdnr=lpkdnr and aevenr=lpvenr "
.CommandText = .CommandText & " left join " & fLib & ".kpzi on 'KP'=kpsart and aefirm=kpfirm and aewknr=kpwknr and aetenr=kptenr and aekdnr=kpkdnr "
.CommandText = .CommandText & " where aefirm=? and aewknr=? and aetada>=? "
.CommandText = .CommandText & " order by aefirm, aewknr, aetada, aetenr"
.CommandTimeout = 32000
Set .ActiveConnection = fBrain
End With
Die Variable "fLib" enthält den Namen der Lib, so dass der SQL qualifiziert ist, sämtliche Verknüpfungen verweisen auf vorhandene Indices.
Die Problemdateien sind die LPLP und KPZI für die genau passende LF's exisitieren und die auch keine LF's mit Select/Omit haben.
Interessant ist, dass auf die AFP1 und AFK1 korrekt über Index zugegriffen wird obwohl gerade hier LF's mit Select/Omit existieren.
Die Hauptdatei LPAU sowie TEIL wird auch korrekt über Index verarbeitet.
Es besteht also überhaupt kein Grund, warum gerade bei LPLP und KPZI der vorhandene Index nicht genutzt wird.
Similar Threads
-
By schatte in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 20-10-08, 19:25
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks