sql >> Database >  >> RDS >> Oracle

Slaat de jdbc-dataset alle rijen op in het jvm-geheugen?

Het hangt er van af. Verschillende stuurprogramma's kunnen zich verschillend en verschillend gedragen ResultSet instellingen kan zich anders gedragen.

Als u een CONCUR_READ_ONLY . heeft , FETCH_FORWARD , TYPE_FORWARD_ONLY ResultSet , zal het stuurprogramma vrijwel zeker actief het aantal rijen dat overeenkomt met uw ophaalgrootte in het geheugen opslaan (uiteraard blijven gegevens voor eerdere rijen enige tijd in het geheugen totdat het wordt verzameld). Als u een TYPE_SCROLL_INSENSITIVE . heeft ResultSet , aan de andere kant is het zeer waarschijnlijk dat het stuurprogramma alle opgehaalde gegevens in het geheugen zou opslaan, zodat u vooruit en achteruit door de gegevens kunt bladeren. Dat is niet de enige mogelijke manier om dit gedrag te implementeren, dus verschillende stuurprogramma's (en verschillende versies van stuurprogramma's) kunnen verschillend gedrag vertonen, maar het is de eenvoudigste en de manier waarop de meeste stuurprogramma's die ik ben tegengekomen zich gedragen.



  1. Niet aangevinkt selectievakje geeft null-waarde terug

  2. _COUNT gebruiken in BaseColumns

  3. Mysql single query join 3 table en krijg alle resultaten

  4. Hoe CHARSET() werkt in MariaDB