-
Wie Manuel sagte, du musst Deine Abfragen analysiseren.
Am einfachsten geht das, indem Du über ACS in das Performance Center reinschaust und Dir die SQL-Statements anschaust ... und nach lang laufenden Statements suchst.
Vermutlich wird wie Manuel bereits vermutet hat ein oder mehrere temporäre Indices aufgebaut ... und das dauert. "Temporäre" Indices bleiben so lange existent, wie ein Access Plan, der diesen Index verwendet im SQE Plan Cache existiert. Wenn Ihr die Maschine jede Nacht herunterfahrt, wird der Plan Cache gecleart, d.h. alle Access Pläne verschwinden und damit auch die temporären Indices. Am nächsten Morgen muss dann alles neu erstellt werden.
Sollte es wirklich so sein, dass temporäre Indices verwendet werden, sollten diese permanent angelegt werden. Permanente Indices werden beim IPL nicht gelöscht und somit müsste der Zugriff am nächsten Morgen schneller sein.
Tatsächlich dauert der Aufruf eines SQL-Statements (in einem Job oder einer Verbindung) immer länger als die Folge-Aufrufe. Der Grund dafür ist, dass ein FULL OPEN ausgeführt werden muss. Bei dem FULL OPEN wird eine volle Optimierung einschließlich dem Aufbau des Datenpfades (Open Data Path) ausgeführt. Das Öffnen des Datenpfades ist der zeitaufwändigste Schritt beim Ausführen eines SQL-Statements. Sofern der Datenpfad wiederverwendbar ist, wird er nicht gelöscht und beim Erneuten Ausführen des gleichen SQL-Statements werden lediglich die Daten aktualisiert.
... wenn dann beim FULL OPEN auch noch ein Index erstellt werden muss ...
... allerdings scheint beim Timeout nicht unbedingt die tatsächliche Zeit, sondern eine geschätze Ausführungszeit ausschlaggebend zu sein. Wir hatten den Fall schon beim Kunden, dass die Abfrage beim direkten Ausführen auf der i (ACS oder Green Screen) innerhalb von ein paar Sekunden durch war, der ODBC-Zugriff jedoch wegen Timeout abgebrochen bzw. gar nicht erst ausgefürht wurde, da die geschätze Runtime > 30 Sekunden war.
(ob es dafür inzwischen einen Fix oder PTF gibt, kann ich nicht sagen)
Vielleicht kannst Du ja auch irgendwo in der ODBC-Verbindung die Timeout-Zeit setzen.
Birgitta
Similar Threads
-
By KM in forum NEWSboard Programmierung
Antworten: 12
Letzter Beitrag: 04-11-22, 06:41
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 05-11-19, 15:35
-
By alex.kretschmer in forum NEWSboard Java
Antworten: 6
Letzter Beitrag: 29-09-16, 11:22
-
By max40 in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 27-01-16, 11:58
-
By Amalie in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 23-11-01, 08:37
Tags for this Thread
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