View Full Version : Zugriff auf Join-File via JDBC
peter.kinne
02-06-10, 10:36
Hallo zusammen,
wir machen einen Dateizugriff über JDBC auf eine VIEW, die auf der Power i liegt.
Beim ersten Aufruf dauert es ca. 60 Sekunden.
Beim zweiten Aufruf nur noch 2 Sekunden.
Was können wir ändern, damit der erste Aufruf weniger Zeit in Anspruch nimmt.
LG Peter
Wie immer: Zugriffsanalyse und fehlende Indizes anlegen.
Der erste Aufruf dauert immer länger, da zunächst ein Access Plan erstellt und validiert werden muss und anschließend der ODP geöffnet werden muss.
Bei folgenden Aufrufen kann der ODP wieder verwendet werden.
Wie Baldur schon sagt kann es auch daran liegen, dass ein temporärer Index aufgebaut wird.
Eventuell kann auch extended dynamic SQL bzw. ein SQL Package weiterhelfen.Extended Dynanic SQL (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzaik/useedsql.htm)
Was für ODBC gut ist kann bei JDBC nicht unbedingt schaden.
Birgitta
peter.kinne
02-06-10, 12:01
Hallo Birgitta,
aber beim ersten Aufruf ca. 40 Sekunden für die Validierung??? Ist das nicht sehr lange. Der zweite Aufruf funkt nach 2 Sekunden.
Und außerdem liegt die View ja auf der i5 bereits mundgerecht vor. Jedoch kann
ich bei DSPFFD (VIEW) nicht die Zugriffswegwartung sehen, wie bei einer "normalen"
LF (*immed etc.).
Gruß
Peter
... mal zu den Größenordnungen:
- Einzelsatzoperation Milli Sekunde
- Validierung Accessplan wenige hundertstel Sekunden
- Erstellung ODP bei ausreichenden Zugriffspfaden wenige Millisekunden
- Netztwerkzeiten << Millisekunde
alles was länger dauert sind full table scans, Aufbau temporärer Zugriffsstrukturen (also zu 99% durch anlegen eines Indexes zu heilen), Wartebedingungen wg. Sperren etc.
Was Java angeht, hat man außer den Datenbanktechnischen Lösungen (Zugriffspfade, Redundanz etc.) noch Applikationstechnisch was in der Hinterhand (Pre fetching, lazy fetching, caching...)
BTW: eine SQL View hat keinen Zugriffspfad und keine Maintenance, das ist nur ein in der Datenbank gespeichertes SQL Statement!
D*B
Prüfe in deinem Join die Beziehungen ob für alle Felder ein Index besteht und keine Typänderungen erforderlich sind.
Mache einen STRDBG, rufe STRSQL auf und frage die View wie in JDBC ab.
Im Joblog findest du mehrere Hinweise was zu tun ist.
Alternativ kannst du auch den OpsNav zur Abfrageanalyse verwenden.
... das was dauert ist micht den Access Plan zu erstellen oder validieren, sondern den ODP zu erstellen, d.h. temporäre Objekte zu bilden (nicht nur Indices) und diese mit Daten zu versorgen.
Birgitta