sql >> Database >  >> RDS >> Oracle

hibernate.jdbc.fetch_size of @QueryHints(@javax.persistence.QueryHint(name=org.hibernate.fetchSize, value=10)) werkt niet

De standaard ophaalgrootte in oracle is al 10 records, dus het is raar dat je geheugenproblemen hebt bij het toevoegen van deze hint. Vooral als 100000 geen probleem vormt.

Enkele dingen die ik zou doen om het probleem te lokaliseren en een oplossing te bieden:

Barebone test je code

Test de code die verantwoordelijk is voor uw vragen (waarschijnlijk uw DAO) met een minimum aan overhead. Ik vermoed dat de uitzondering voor onvoldoende geheugen eerder te wijten is aan het verwerken van de databaseresultaten en niet aan de daadwerkelijke query + fetchsize.

Wijzig dus tijdelijk uw code om de query eenvoudig uit te voeren, maar voer er geen mapping of andere verwerking op uit. Zorg ervoor dat het klaar is.

Als dit je probleem lijkt te "verhelpen", kan het zijn dat je wat hebt uitgevoerd op de gegevens die je ontvangt en die je geheugen overspoelen.

Update uw afhankelijkheden

Als je maven (of gradle of een andere build-tool) gebruikt, raad ik aan om elke update op zijn minst bij te werken naar de nieuwste secundaire versie (bijvoorbeeld 1.2.3 -> 1.2.9). enkele bugs oplossen.

Ga niet willekeurig met ophaalformaten

Bekijk deze antwoorden om te beslissen wat een goede ophaalmaat voor uw situatie kan zijn.




  1. Prestaties van LIKE-query's op miljoenen rijtabellen, MySQL

  2. Genereer tabel DDL via query op MySQL en SQL Server

  3. Correct beheer van databasebronnen:cursor en verbinding

  4. performant ordenen van sleutels in een MySQL samengestelde index (WRT Rails Polymorphic Associations en STI)