Oracle
 sql >> Database >  >> RDS >> Oracle

Il set di dati jdbc memorizza tutte le righe nella memoria jvm

Dipende. Driver diversi possono comportarsi in modo diverso e ResultSet impostazioni potrebbe comportarsi diversamente.

Se hai un CONCUR_READ_ONLY , FETCH_FORWARD , TYPE_FORWARD_ONLY ResultSet , il driver quasi certamente memorizzerà attivamente in memoria il numero di righe che corrisponde alla dimensione di recupero (ovviamente i dati per le righe precedenti rimarranno in memoria per un certo periodo di tempo fino a quando non verranno raccolti immondizia). Se hai un TYPE_SCROLL_INSENSITIVE ResultSet , d'altra parte, è molto probabile che il driver memorizzi tutti i dati che sono stati recuperati in memoria per consentire di scorrere avanti e indietro i dati. Questo non è l'unico modo possibile per implementare questo comportamento, quindi driver diversi (e versioni diverse di driver) possono avere comportamenti diversi, ma è il più semplice e il modo in cui si comporta la maggior parte dei driver che ho incontrato.