Oracle
 sql >> Base de données >  >> RDS >> Oracle

L'ensemble de données jdbc stocke-t-il toutes les lignes dans la mémoire jvm

Ça dépend. Différents pilotes peuvent se comporter différemment et différents ResultSet paramètres peut se comporter différemment.

Si vous avez un CONCUR_READ_ONLY , FETCH_FORWARD , TYPE_FORWARD_ONLY ResultSet , le pilote stockera presque certainement activement en mémoire le nombre de lignes correspondant à votre taille de récupération (bien sûr, les données des lignes précédentes resteront en mémoire pendant un certain temps jusqu'à ce qu'elles soient récupérées). Si vous avez un TYPE_SCROLL_INSENSITIVE ResultSet , d'autre part, il est très probable que le pilote stocke toutes les données récupérées en mémoire afin de vous permettre de faire défiler les données en avant et en arrière. Ce n'est pas la seule façon possible d'implémenter ce comportement, donc différents pilotes (et différentes versions de pilotes) peuvent avoir des comportements différents, mais c'est le plus simple et c'est ainsi que se comportent la plupart des pilotes que j'ai rencontrés.