Java JDBC ignore setFetchSize?

Je suis en utilisant le code suivant

 st = connection.createStatement(
            ResultSet.CONCUR_READ_ONLY,
            ResultSet.FETCH_FORWARD,
            ResultSet.TYPE_FORWARD_ONLY
             );
 st.setFetchSize(1000);
 System.out.println("start query ");
 rs = st.executeQuery(queryString);
 System.out.println("done query");

La requête en retour beaucoup d' (800k) lignes et de prendre un temps important (~2m) entre l'impression de "query" et "fait de requête". Quand j'mettre manuellement une "limite de 10000" dans ma requête il n'y a pas de temps entre "démarrer" et "fait". Le traitement des résultats prend du temps donc je suppose que c'est globalement plus rapide si elle récupère 1k lignes à partir de la base de données, processus de ceux et quand il est à court de lignes qu'il peut obtenir de nouveaux en arrière-plan.

La ResultsSet.CONCUR_READ_ONLY etc où mon dernier deviner; suis-je raté quelque chose?

(c'est un serveur postgresql 8.3)

setFetchSize fonctionne réellement bien avec le driver PostgreSQL, il n'a tout simplement une chose très différente que vous vous attendez à faire. Voir ma réponse.
Voir aussi stackoverflow.com/a/47517489/32453

OriginalL'auteur kresjer | 2009-09-23