Oracle
 sql >> база данни >  >> RDS >> Oracle

hibernate.jdbc.fetch_size или @QueryHints(@javax.persistence.QueryHint(name=org.hibernate.fetchSize, value=10)) не работи

Размерът за извличане по подразбиране в oracle е вече 10 записа, така че е странно, че имате проблеми с паметта, когато добавяте тази подсказка. Особено ако 100 000 не представляват проблем.

Някои неща, които бих направил, за да определя проблема и да предложа решение:

Barebone тестване на вашия код

Тествайте кода, отговорен за вашите заявки (вероятно вашият DAO) с минимални разходи. Подозирам, че изключението за липса на памет е по-вероятно да се дължи на обработката на резултатите от базата данни, а не на действителната заявка + fetchsize.

Така че временно променете кода си, така че просто да изпълните заявката, но не правете никакво картографиране или друга обработка върху него. Просто се уверете, че е готово.

Ако изглежда, че това „поправя“ проблема ви, може да имате някои действия върху получените данни, които наводняват паметта ви.

Актуализирайте вашите зависимости

Ако използвате maven (или gradle, или друг инструмент за изграждане), бих предложил да актуализирате всяка актуализация поне до най-новата второстепенна версия (например 1.2.3 -> 1.2.9), това не трябва да наруши нищо, но може поправи някои грешки.

Не избирайте случайни размери за извличане

Вижте тези отговори за да решите какъв може да бъде добър размер за извличане за вашата ситуация.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle ODBC:SQLAllocHandle на драйвера на SQL_HANDLE_ENV е неуспешен

  2. Грешка при изпълнение на съхранена процедура на Oracle в SSRS:PLS-00306:грешен номер или типове аргументи при извикване на

  3. Изберете произволна извадка от резултати от резултат от заявка

  4. Как да използвам MAX() за резултат от подзаявка?

  5. Заредете огромен csv файл в таблицата на базата данни на oracle с помощта на Pyspark