1 <nombre de propiedad="hibernateProperties">
2 <accesorios>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- Crea/actualiza las tablas de la base de datos automáticamente cuando se inicia la JVM
6 <prop key="hibernate.hbm2ddl.auto">actualizar</prop> -->
7 <!-- Desactive el procesamiento por lotes para obtener mejores mensajes de error en PostgreSQL
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </accesorios>
11 </propiedad>
Cuanto mayor sea el tamaño de recuperación, menos veces se lee la base de datos y más rápida es la velocidad; cuanto menor es el tamaño de recuperación, más veces se lee la base de datos y más lenta es la velocidad;
2. Si es un sistema muy grande, se recomienda generar archivos htm. Acelere la promoción de la página.
3. No ponga toda la responsabilidad en hibernar, refactorice el código, reduzca las operaciones en la base de datos, trate de evitar el uso en operaciones durante las consultas de la base de datos y evite las operaciones de consulta recursivas. La calidad del código y la racionalidad del diseño del sistema determinan el nivel de rendimiento.
4. Al consultar grandes cantidades de datos, utilice list() o iterator() con precaución para devolver los resultados de la consulta.
(1) Cuando se utiliza List () para devolver resultados, Hibernate inicializará todos los resultados de la consulta en objetos persistentes. Cuando el conjunto de resultados es grande, consumirá mucho tiempo de procesamiento.
(2) Cuando se usa iterator () para devolver resultados, Hibernate llamará a la consulta para inicializar el objeto correspondiente cada vez que se llame a iterator.next () para devolver el objeto y usará el objeto para grandes cantidades de datos. ser llamado. Pasar más tiempo. Es ventajoso utilizar iterator() cuando el conjunto de resultados es grande, pero contiene una gran cantidad de los mismos datos, o cuando no se utilizará todo el conjunto de resultados.
5. En relaciones de uno a muchos y de muchos a uno, el uso del mecanismo de carga retrasada hará que muchos objetos se inicialicen cuando se usan. Esto puede ahorrar espacio en la memoria y reducir la carga en la base de datos y en la colección. en PO Cuando no está en uso, las interacciones mutuas de bases de datos se pueden reducir y el tiempo de procesamiento.
6. Cuando hay un PO asociado (objeto persistente), si se usa default-cascade="all" o "save-update", al agregar un nuevo PO, preste atención a la operación de asignación de la colección en el PO. porque puede causar múltiples Realice una operación de actualización.
7. Para operaciones como agregar, modificar y eliminar grandes cantidades de datos o consultar grandes cantidades de datos, la cantidad de interacciones con la base de datos es el factor más importante que determina el tiempo de procesamiento. Reducir la cantidad de interacciones es la mejor manera. para mejorar la eficiencia, por lo tanto, durante el proceso de desarrollo, configure show_sql en verdadero, tenga un conocimiento profundo del proceso de procesamiento de Hibernate y pruebe diferentes métodos para mejorar la eficiencia. Intente mostrar cada página tanto como sea posible y reduzca las operaciones en la base de datos a menos de 100-150 elementos. Cuanto menos mejor.
Lo anterior son algunas ideas sobre la optimización del rendimiento de la hibernación durante el desarrollo de proyectos con struts+hibernate+spring.