-
 Zitat von BenderD
nachdem wir von denselben Zeiten ausgehen: woher kommen diese Angaben (die 0,3 und 0,5 sec)???
ich habe zu Testzwecken, da die Performance so schlecht war ein Potokoll geschrieben, dass mittels Timestamp die Zeiten vor und nach dem SQL wegschreibt.
so habe ich das ganze Programm "analysiert" und der einzige wirkliche Knackpunkt scheint das SQL zu sein.
-
Hallo Alex,
als nächstes würde ich erst mal mit STRDBMON (detail auswählen) oder Ooops Nerv den Job mit dem Database Monitor überwachen und dann in der Summary die durchschnittlichen und max Zeiten pro INSERT/UPDATE ermitteln und in den Details die teuersten Statements genauer ansehen mit den dazugehörigen Infos, was die Query Engine treibt. Zusätzlich interessant sind hier noch die Empfehlungen für Indexe.
Nächste Maßnahme wäre das rausloggen der gebastelten SQL Statements, soweit nicht bereits geschehen.
Die Verarbeitungszeiten Deiner Protokolle müssen mit den Logs konsistent und nachvollziehbar sein.
Wichtig ist auch, dass ein halbwegs aktuelles GRPPTF für die Datenbank installiert ist - ohne Group PTF funktioniert die Datenbank sowieso nicht seitdem es GRP PTFs für die DB gibt.
mfg
Dieter Bender
 Zitat von MrBonZai
ich habe zu Testzwecken, da die Performance so schlecht war ein Potokoll geschrieben, dass mittels Timestamp die Zeiten vor und nach dem SQL wegschreibt.
so habe ich das ganze Programm "analysiert" und der einzige wirkliche Knackpunkt scheint das SQL zu sein.
-
Im Dialog kannst du dein Programm sicherlich debuggen (STRDBG).
Nach Ausführung des jeweiligen SQL's schau mal ins Joblog.
Die Datenbank schreibt dann jede Menge Meldungen über verwendete und empfohlene Zugriffspfade.
Lege dann einfach mal per STRSQL mit CREATE INDEX genau so einen Zugriffspfad an und wiederhole den Test mittels STRDBG.
Vergleiche dann die Meldungen des Joblogs mit den vorherigen.
SQLCLI ist ein C-Interface, dass ODBC-ähnliche Zugriffe auf Datenbanken unterstützt.
CPW sind die sog. Transaktionswerte, die IBM in Dialog und Batch aufgedröselt hat.
Zu erfragen bei IBM bzw. feststellbar durch Model und Prozessor.
Bei langlaufenden SQL's wird der Dialog häufig ausgebremst, was im Batch nicht der fall ist.
-
ich habe mitterweile mal beim Debug die Meldungen angeschaut...
Abfrageoptionsdatei kann nicht abgerufen werden.
Wartezeit für Abfrageoptimierungsprogramm für Datei NC6000 überschritten.
Zusätzliche Ursachencodes für Zugriffspfad verwendet.
Zugriffspfad der Datei NC6000 wurde von einer Abfrage verwendet.
ODP erstellt.
Datenumsetzung für Anweisung INSERT oder UPDATE erforderlich.
Offener Datenpfad (ODP) gelöscht.
1 Zeilen in NC6000 in TRZ90PD aktualisiert.
was ist denn mit Abfrageoptionsdatei gemeint?
eine F1 auf die Meldung bringt folgendes zu Tage:
Nachricht . . . : Abfrageoptionsdatei kann nicht abgerufen werden.
Ursache . . . . : Die Abfrageoptionen konnten aus Teildatei QAQQINI in Datei
QAQQINI in Bibliothek QUSRSYS aufgrund von Ursachencode 2 nicht abgerufen
werden. Ursachencodes und ihre Bedeutung:
2 - Datei QAQQINI in Bibliothek QUSRSYS wurde nicht gefunden.
damit kann ich nichts anfangen.
Auch die Meldung "Wartezeit für Abfrageoptimierungsprogramm für Datei NC6000 überschritten." ist mir schleierhaft.
Ich habe ALLE Key-Felder in korrekter Reihenfolge in meiner "Where"-Klausel.
Er hat im Endeffekt auch die korrekte LF (was in diesem Fall die PF ist) verwendet... Die Meldung erstaunt mich allerdings.
zudem habe ich Probleme mit "Datenumsetzung für Anweisung INSERT oder UPDATE erforderlich. "
dort wird das Feld BWOT angemeckert (BWOT ist 17 A)
Ich habe aufgrund dieser Meldung z.B. alpha-Felder mit der korrekten Länge angegeben z.B. anstatt bwot = 'test' in korrekter Länge bwot = 'test '
Die Meldung erscheint aber weiterhin, oder ist hiermit etwas anderes gemeint?
Gruss Alex
-
Hallo Alex,
 Zitat von MrBonZai
ich habe mitterweile mal beim Debug die Meldungen angeschaut...
was ist denn mit Abfrageoptionsdatei gemeint?
eine F1 auf die Meldung bringt folgendes zu Tage:
damit kann ich nichts anfangen.
Auch die Meldung "Wartezeit für Abfrageoptimierungsprogramm für Datei NC6000 überschritten." ist mir schleierhaft.
Ich habe ALLE Key-Felder in korrekter Reihenfolge in meiner "Where"-Klausel.
Er hat im Endeffekt auch die korrekte LF (was in diesem Fall die PF ist) verwendet... Die Meldung erstaunt mich allerdings.
zudem habe ich Probleme mit "Datenumsetzung für Anweisung INSERT oder UPDATE erforderlich. "
dort wird das Feld BWOT angemeckert (BWOT ist 17 A)
Ich habe aufgrund dieser Meldung z.B. alpha-Felder mit der korrekten Länge angegeben z.B. anstatt bwot = 'test' in korrekter Länge bwot = 'test '
Die Meldung erscheint aber weiterhin, oder ist hiermit etwas anderes gemeint?
Gruss Alex
mit Abfrage Optionsdatei ist die Datei QAQQINI gemeint, die eigentlich vorhanden sein sollte und Einstellparameter für die Query Engine enthält. Das deutet auf einen mangelnden Gruppen PTF Stand hin, was auch zu Deinem Problem beitragen könnte.
Wartezeit ... meint: der Query Optimizer hat seine maximale Zeit überschritten, die Suche nach einem Zugriffspfad wird abgebrochen und der bisher optimale wird verwendet. Das wäre kein Drama, wenn es sich nicht um dynamisches SQL handeln würde, wo der Optimizer jedesmal beim prepare oder execute immediate zuschlägt. Das ist wohl eines Deiner Probleme. Ursache dafür könnte eine große Anzahl logischer Dateien über Deiner physischen sein.
Lösungsweg besteht in aktuellem Group PTFs für die Datenbank einspielen und Du musst von Deinem dynamischen SQL runter und notfalls mit entsprechender Verzweigungslogik auf feste SQL Statements umsteigen, wenn das flotter werden soll.
mfg
Dieter Bender
-
 Zitat von BenderD
mit Abfrage Optionsdatei ist die Datei QAQQINI gemeint, die eigentlich vorhanden sein sollte und Einstellparameter für die Query Engine enthält. Das deutet auf einen mangelnden Gruppen PTF Stand hin, was auch zu Deinem Problem beitragen könnte.
ich habe mal nach der Datei gesucht. Sie ist in QSYS vorhanden.
QAQQINI *FILE QSYS PF QUERY OPTIONS FILE
muss ich hier irgendetwas umstellen, damit er nicht auf die QUSRSYS zugreift?
Die Meldung lautete ja so:
Ursache . . . . : Die Abfrageoptionen konnten aus Teildatei QAQQINI in Datei QAQQINI in Bibliothek QUSRSYS aufgrund von Ursachencode 2 nicht abgerufen
-
Hallo Alex,
 Zitat von MrBonZai
ich habe mal nach der Datei gesucht. Sie ist in QSYS vorhanden.
QAQQINI *FILE QSYS PF QUERY OPTIONS FILE
muss ich hier irgendetwas umstellen, damit er nicht auf die QUSRSYS zugreift?
Die Meldung lautete ja so:
direkter Handlungsbedarf ist hier nicht, aber nochmal: wie sieht es mit den Gruppenptfs Database aus? (Details sind Release abhängig!)
mfg Dieter Bender
-
 Zitat von BenderD
wie sieht es mit den Gruppenptfs Database aus? (Details sind Release abhängig!)
Ich habe mal in unserer IT nachgefragt.
Der letzte installierte Group-PTF für V4R5 ist vom 22.1.2003.
-
Hallo Alex,
V4R5? das ist ja Asbach vom Feinsten - wenn ich das noch zusammen bringe, dann müsste es in einer der Qxxx Bilbliotheken eine DTAARA SF99105 geben, in der der Fix Level für die Datenbank drinsteht; das sollte man vielleicht nochmal verifizieren.
Ansonsten wäre der nächste offene Punkt noch wieviele logische hocken denn nun auf Deiner Datei drauf? Wenn das wirklich "Legionen" sind, dann musst Du an das Design Deiner Anwendung dran und weg von der "Billiglösung" mit dem fully dynamic Ansatz.
mfg
Dieter Bender
 Zitat von MrBonZai
Ich habe mal in unserer IT nachgefragt.
Der letzte installierte Group-PTF für V4R5 ist vom 22.1.2003.
-
 Zitat von BenderD
V4R5? das ist ja Asbach vom Feinsten

Ja klar... wir sind Softwarehersteller und müssen zwangsläufig den niedigsten Release-Stand unserer Kunden halten... 
Gruss Alex
-
Hi,
in einem Vorlauf CL kannst du per
CHGQRYA QRYOPTLIB(QSYS) umstellen.
Wahlweise kannst du auch eine eigene Erstellen (erstmal zum testen)
und die dann ansprechen.
Aber bei Interaktiven Jobs drauf achten dass du anschliessend wieder
CHGQRYA QRYOPTLIB(QUSRSYS)
absetzt. Sonst verändern sich alle SQL Zeiten für nachfolgende Programme.
In der QAQQINI kann man verschiedene Einstellungen vornehmen um gewisse SQL Abläufe zu beschleunigen.
Die Feldumsetzung bei dem STRDBG ist bei meinen eigenen Programmen meist bei den Numerischen Feldern ein Problem zwischen Gezont und Gepackt. Hast du nur Alphanumerische Felder?
Rince
Similar Threads
-
By Rincewind in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 18-12-06, 13:58
-
By Squall in forum NEWSboard Programmierung
Antworten: 23
Letzter Beitrag: 18-10-06, 12:01
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
By e_sichert in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 03-05-06, 10:47
-
By itec01 in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 16-09-04, 18:38
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