Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

hibernate.jdbc.fetch_size atau @QueryHints(@javax.persistence.QueryHint(name=org.hibernate.fetchSize, value=10)) tidak berfungsi

ukuran pengambilan default di Oracle sudah 10 catatan, jadi aneh bahwa Anda mengalami masalah memori saat menambahkan petunjuk ini. Apalagi jika 100.000 tidak menimbulkan masalah.

Beberapa hal yang akan saya lakukan untuk menunjukkan masalah dan memberikan solusi:

Barebone menguji kode Anda

Uji kode yang bertanggung jawab atas kueri Anda (mungkin DAO Anda) dengan overhead minimum. Saya menduga pengecualian kehabisan memori lebih mungkin disebabkan oleh pemrosesan hasil basis data dan bukan kueri + ukuran pengambilan yang sebenarnya.

Jadi, ubah sementara kode Anda untuk sekadar melakukan kueri tetapi jangan lakukan pemetaan atau pemrosesan apa pun di atasnya. Pastikan sudah selesai.

Jika ini tampaknya "memperbaiki" masalah Anda, mungkin ada beberapa yang dilakukan pada data yang Anda terima yang membanjiri memori Anda.

Perbarui dependensi Anda

Jika Anda menggunakan maven (atau gradle, atau alat build lainnya) saya sarankan untuk memperbarui pembaruan apa pun setidaknya ke versi minor terbaru (misalnya 1.2.3 -> 1.2.9) ini seharusnya tidak merusak apa pun kecuali mungkin perbaiki beberapa bug.

Jangan sembarangan dengan ukuran pengambilan

Lihat jawaban ini untuk memutuskan ukuran pengambilan yang baik untuk situasi Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemicu yang menyisipkan baris ke tabel log saat menyisipkan atau menghapus di tabel orang yang dikompilasi dengan kesalahan

  2. Mendeklarasikan &Mengatur Variabel dalam Pernyataan Pilih

  3. Halaman beranda Oracle 10g express tidak muncul

  4. Mengapa memilih kolom yang ditentukan, dan semuanya, salah di Oracle SQL?

  5. Oracle menghapus baris dari beberapa tabel