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

hibernate.jdbc.fetch_size eller @QueryHints(@javax.persistence.QueryHint(name=org.hibernate.fetchSize, value=10)) virker ikke

standardstørrelsen for hentning i oracle er allerede 10 poster, så det er mærkeligt, at du har problemer med hukommelsen, når du tilføjer dette tip. Især hvis 100.000 ikke udgør et problem.

Nogle ting, jeg ville gøre for at lokalisere problemet og finde en løsning:

Barebone test din kode

Test koden, der er ansvarlig for dine forespørgsler (sandsynligvis din DAO) med et minimum af overhead. Jeg formoder, at undtagelsen med tom for hukommelse er mere tilbøjelig til at skyldes behandling af databaseresultaterne og ikke den faktiske forespørgsel + fetchsize.

Så ændr din kode midlertidigt for blot at udføre forespørgslen, men foretag ikke nogen kortlægning eller anden behandling på den. Bare sørg for, at det er gjort.

Hvis dette ser ud til at "løse" dit problem, har du muligvis udført nogle af de data, du modtager, som oversvømmer din hukommelse.

Opdater dine afhængigheder

Hvis du bruger maven (eller gradle eller et hvilket som helst andet byggeværktøj), vil jeg foreslå at opdatere enhver opdatering i det mindste til den seneste mindre version (f.eks. 1.2.3 -> 1.2.9), dette burde ikke gå i stykker, men måske ret nogle fejl.

Gå ikke tilfældigt med hentestørrelser

Se disse svar at beslutte, hvad en god apportstørrelse kan være for din situation.




  1. MySQL group_concat_max_len i en forespørgsel

  2. PHP mysqli forberedt erklæring til lagret procedure uden parameter

  3. Hvordan kan jeg få en hash af en hel tabel i postgresql?

  4. Udførelse af sql-script på en batch-fil med accent