2016-07-07 4 views
1

Ich verwende JDBC und habe eine Stored Procedure in DB2, die eine riesige Menge an Daten zurückgibt - etwa 6000 Zeilen. Wegen dieses großen Volumens benötigt die Netzwerkübertragung (vom Datenbankserver zum Anwendungsserver) Zeit.Lesen großer Ergebnismengen in JDBC

Was ich denke, ist die Verwendung mehrerer Java-Threads, um die Stored Procedure aufzurufen, wobei jeder Thread verschiedene Datenblöcke zurückgibt. Gewinde1 - Reihe 1 - Reihe 1000; Thread2 - Zeile 1001 - Zeile 2000; Thread3 - Zeile 2001 - Zeile 3000 und so weiter

Alle diese Threads können parallel ausgeführt werden, und ich kann die Ergebnisse jedes Threads aggregieren.

Gibt es eine bessere Möglichkeit, dieses Problem mit JDBC oder anderen Mitteln zu behandeln?

+2

6000 Zeilen ist keine große Menge an Daten. Multithreading wird nichts verbessern. – EJP

Antwort

0

Je nach Ihrem JDBC-Treiber kann setting the fetch size helfen. Mit der Standard-Abrufgröße von 0 liest Ihr Treiber möglicherweise alle Zeilen gleichzeitig in den Speicher, was die Ursache für die Langsamkeit sein könnte.

Verwandte Themen