sql >> Databasteknik >  >> RDS >> Oracle

Lagrar jdbc dataset alla rader i jvm-minnet

Det beror på. Olika drivrutiner kan bete sig olika och olika ResultSet inställningar kan bete sig annorlunda.

Om du har en CONCUR_READ_ONLY , FETCH_FORWARD , TYPE_FORWARD_ONLY Resultatuppsättning , kommer föraren nästan säkert aktivt att lagra i minnet antalet rader som motsvarar din hämtningsstorlek (naturligtvis kommer data för tidigare rader att finnas kvar i minnet under en viss tid tills det samlas in skräp). Om du har en TYPE_SCROLL_INSENSITIVE Resultatuppsättning , å andra sidan är det mycket troligt att föraren skulle lagra all data som hämtades i minnet för att du ska kunna scrolla bakåt och framåt genom datan. Det är inte det enda möjliga sättet att implementera detta beteende, så olika drivrutiner (och olika versioner av drivrutiner) kan ha olika beteenden, men det är det enklaste och det sätt som de flesta drivrutiner jag har stött på beter sig.



  1. Hur Ln()-funktionen fungerar i PostgreSQL

  2. mysql pivottabell med strängvärden

  3. Slumpmässig PRIMÄRNYCKEL för Innodb

  4. SQL-värde för tidigare (okänt) datum