PDA

View Full Version : Warum ist der zugriff per Java/JDBC auf die AS/400 so langsam?



LoCal
15-10-02, 12:22
Hallo,

kann mir jemand verraten warum der zugriff per JDBC per java so langsam verläuft??ß

Also wenn ich die resultsets ausleses, dann liegt die leistung so bei 10.000 Sätze/minute was nicht besonders schnell ist.

Hat jemadn optimierung?

Danke,

LoCal

^Hawkmoon
15-10-02, 13:34
Jupp.. Logisch, oder auch unlogisch....

Da der Zugriff ein ODBC-welcher ist, dürfte sich die Geschwindigkeit erhöhen, wenn die (ich gehe einfach mal von SQL per ODBC aus) Verarbeitung bei 50-100 Sätzen endet. Dann die Verbindung beenden, neu starten;

Ich habe bereits in einem anderen Forum darüber geschrieben, dass das eine Möglichkeit ist. Der Grund scheinen mir die temporären Tables zu sein, die mit wachsender Verarbeitung angehäuft wird, und von SQL zu Commit-Zwecken o. ä. im Hintergrund behalten werden.

Testen Sie diese Art einfach mal aus, und vergleichen Sie.

Grüsse Marcus

PS: Alternative und etwas genauere Erläuterung finden Sie unter Newsboard/Software/Alternative zu MS Access

[Dieser Beitrag wurde von ^Hawkmoon am 15. Oktober 2002 editiert.]

LoCal
15-10-02, 13:37
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von ^Hawkmoon:
Jupp.. Logisch, oder auch unlogisch....

Da der Zugriff ein ODBC-welcher ist, dürfte sich die Geschwindigkeit erhöhen, wenn die (ich gehe einfach mal von SQL per ODBC aus) Verarbeitung bei 50-100 Sätzen endet. Dann die Verbindung beenden, neu starten;

Ich habe bereits in einem anderen Forum darüber geschrieben, dass das eine Möglichkeit ist. Der Grund scheinen mir die temporären Tables zu sein, die mit wachsender Verarbeitung angehäuft wird, und von SQL zu Commit-Zwecken o. ä. im Hintergrund behalten werden.

Testen Sie diese Art einfach mal aus, und vergleichen Sie.

Grüsse Marcus[/quote]

Das gleiche hab ich mal bei ner Interbase gemacht, nur war es da so, daß mit wachsender Satzzahl die dauer pro Satz sich extrem erhöht hatte, bei der AS/400 bleibt der wert konstant.
Aber das galt nur fürs eintragen.
Is aber das resultset nicht weg, wenn ich die verbindung beende???

Peace,

LoCal

[Dieser Beitrag wurde von LoCal am 15. Oktober 2002 editiert.]

^Hawkmoon
15-10-02, 13:43
Das meinte ich mit veränderter Programmlogik.

Ich bin dazu übergegangen, mir 50 Sätze zu selektieren, diese auszuwerten und in eine tmpTable abzulegen. So hole ich mir die Sätze häppchenweise ab, ziehe die iSeries nicht in den Keller (siehe anderen Eintrag) und kann dann meine Auswertungen über die tmpTable machen.

Ist von hinten durchs Bein geschossen, aber die Vorteile sind auf einer iSeries in einer fest eingebundenen Arbeitsumgebung nicht von der Hand zu weisen.

Die andere Möglichkeit (EasyComm) ist dagegen eine kostenpflichtige Alternative...

Grüsse Marcus

Fuerchau
15-10-02, 14:33
Naja, 10.000 pro Minute bedeutet 167 Sätze pro Sekunden, d.h., 0,006 Sekunden pro Satz, und das soll langsam sein ?
Bei der ODBC-Einstellung kann man noch den Block-Puffer vergrößern( default 32KB), so dass mehr Daten in einem Rutsch übertragen werden können.

Wie groß ist denn der einzelne Satz ?
Vielleicht ist der Engpass ja auch im Netz (mehr KB/Sec geht halt nicht) ?