Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Speichert das jdbc-Dataset alle Zeilen im JVM-Speicher

Es hängt davon ab, ob. Unterschiedliche Treiber können sich unterschiedlich verhalten und unterschiedliche ResultSet Einstellungen kann sich anders verhalten.

Wenn Sie einen CONCUR_READ_ONLY haben , FETCH_FORWARD , TYPE_FORWARD_ONLY ResultSet , wird der Treiber mit ziemlicher Sicherheit die Anzahl der Zeilen, die Ihrer Abrufgröße entspricht, aktiv im Speicher speichern (natürlich bleiben Daten für frühere Zeilen für einige Zeit im Speicher, bis die Garbage Collection durchgeführt wird). Wenn Sie einen TYPE_SCROLL_INSENSITIVE haben ResultSet , auf der anderen Seite ist es sehr wahrscheinlich, dass der Treiber alle abgerufenen Daten im Speicher speichert, damit Sie in den Daten vor- und zurückblättern können. Das ist nicht die einzige Möglichkeit, dieses Verhalten zu implementieren, daher können verschiedene Treiber (und verschiedene Versionen von Treibern) unterschiedliche Verhaltensweisen haben, aber es ist die einfachste und die Art und Weise, wie sich die meisten Treiber verhalten, denen ich begegnet bin.