1 <nama properti="hibernateProperties">
2 <alat peraga>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- Membuat/memperbarui tabel database secara otomatis saat JVM dijalankan
6 <prop key="hibernate.hbm2ddl.auto">perbarui</prop> -->
7 <!-- Matikan batching untuk pesan kesalahan yang lebih baik di PostgreSQL
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </alat peraga>
11 </properti>
Semakin besar Fetch Size yang diatur maka semakin sedikit pula frekuensi pembacaan database dan semakin cepat kecepatannya; semakin kecil Fetch Size maka semakin banyak pula pembacaan database dan semakin lambat pula kecepatannya.
2. Jika sistemnya sangat besar, disarankan untuk membuat file htm. Mempercepat promosi halaman.
3. Jangan menaruh semua tanggung jawab pada hibernasi, refactor kode, kurangi operasi pada database, cobalah untuk menghindari penggunaan dalam operasi selama query database, dan hindari operasi query rekursif tingkat kinerja.
4. Saat menanyakan data dalam jumlah besar, gunakan list() atau iterator() dengan hati-hati untuk mengembalikan hasil kueri.
(1). Saat menggunakan List() untuk mengembalikan hasil, Hibernate akan menginisialisasi semua hasil kueri menjadi objek persisten. Jika kumpulan hasil besar, ini akan memakan banyak waktu pemrosesan.
(2). Saat menggunakan iterator() untuk mengembalikan hasil, Hibernate akan memanggil kueri untuk menginisialisasi objek terkait setiap kali iterator.next() dipanggil untuk mengembalikan objek dan menggunakan objek tersebut dipanggil. Menghabiskan lebih banyak waktu. Menguntungkan menggunakan iterator() ketika kumpulan hasil besar, tetapi berisi data yang sama dalam jumlah besar, atau ketika tidak semua kumpulan hasil akan digunakan.
5. Dalam hubungan satu-ke-banyak dan banyak-ke-satu, penggunaan mekanisme pemuatan tertunda akan menyebabkan banyak objek diinisialisasi saat digunakan. Hal ini dapat menghemat ruang memori dan mengurangi beban pada database, dan jika koleksi di PO Saat tidak digunakan, interaksi antar database dapat dikurangi dan waktu pemrosesan dapat dikurangi.
6. Jika ada PO terkait (objek persisten), jika default-cascade="all" atau "save-update" digunakan, saat menambahkan PO baru, harap perhatikan operasi penugasan koleksi di PO, karena dapat menyebabkan beberapa operasi pembaruan.
7. Untuk operasi seperti menambah, mengubah, dan menghapus data dalam jumlah besar atau menanyakan data dalam jumlah besar, jumlah interaksi dengan database merupakan faktor terpenting yang menentukan waktu pemrosesan untuk meningkatkan efisiensi, jadi selama proses pengembangan, harap setel show_sql ke true, pahami secara mendalam proses pemrosesan Hibernate, dan coba berbagai metode untuk meningkatkan efisiensi. Cobalah untuk menampilkan setiap halaman sebanyak mungkin dan kurangi operasi pada database menjadi kurang dari 100-150 item. Semakin sedikit semakin baik.
Di atas adalah beberapa pemikiran tentang optimasi kinerja hibernasi selama pengembangan proyek dengan struts+hibernate+spring.