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

hibernate.jdbc.fetch_size o @QueryHints(@javax.persistence.QueryHint(name=org.hibernate.fetchSize, value=10)) non funziona

La dimensione di recupero predefinita in Oracle sono già 10 record, quindi è strano che tu abbia problemi di memoria insufficiente quando aggiungi questo suggerimento. Soprattutto se 100000 non rappresentano un problema.

Alcune cose che farei per individuare il problema e fornire una soluzione:

Barebone testa il tuo codice

Testa il codice responsabile delle tue query (probabilmente il tuo DAO) con un sovraccarico minimo. Sospetto che l'eccezione di memoria insufficiente sia più probabile che sia dovuta all'elaborazione dei risultati del database e non all'effettiva query + fetchsize.

Quindi modifica temporaneamente il tuo codice per eseguire semplicemente la query ma non eseguire alcuna mappatura o altra elaborazione su di esso. Assicurati solo che sia fatto.

Se questo sembra "risolvere" il tuo problema, potresti aver eseguito alcune operazioni sui dati che ricevi che inondano la tua memoria.

Aggiorna le tue dipendenze

Se stai usando Maven (o gradle o qualsiasi altro strumento di build) ti suggerisco di aggiornare qualsiasi aggiornamento almeno all'ultima versione minore (ad esempio 1.2.3 -> 1.2.9) questo non dovrebbe rompere nulla ma potrebbe correggi alcuni bug.

Non andare a caso con le dimensioni di recupero

Dai un'occhiata a queste risposte per decidere quale potrebbe essere una buona dimensione di recupero per la tua situazione.