1 <nom de la propriété="hibernateProperties">
2 <accessoires>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- Créer/mettre à jour les tables de la base de données automatiquement au démarrage de la JVM
6 <prop key="hibernate.hbm2ddl.auto">update</prop> -->
7 <!-- Désactivez le traitement par lots pour de meilleurs messages d'erreur sous PostgreSQL
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </accessoires>
11 </propriété>
Plus la taille de récupération est grande, moins la base de données est lue et plus la vitesse est rapide ; plus la taille de récupération est petite, plus la base de données est lue et plus la vitesse est lente.
2. S'il s'agit d'un système très volumineux, il est recommandé de générer des fichiers htm. Accélérez la promotion des pages.
3. Ne mettez pas toute la responsabilité sur la mise en veille prolongée, refactorisez le code, réduisez les opérations sur la base de données, essayez d'éviter d'utiliser des opérations lors des requêtes de base de données et évitez les opérations de requête récursives. La qualité du code et la rationalité de la conception du système déterminent le. niveau de performances.
4. Lorsque vous interrogez de grandes quantités de données, utilisez list() ou iterator() avec prudence pour renvoyer les résultats de la requête.
(1). Lorsque vous utilisez List() pour renvoyer des résultats, Hibernate initialisera tous les résultats de la requête dans des objets persistants. Lorsque l'ensemble de résultats est volumineux, cela prendra beaucoup de temps de traitement.
(2). Lors de l'utilisation de iterator() pour renvoyer des résultats, Hibernate appellera la requête pour initialiser l'objet correspondant à chaque fois que iterator.next() est appelé pour renvoyer l'objet et utiliser l'objet. Pour de grandes quantités de données, chaque requête le fera. être appelé. Passez plus de temps. Il est avantageux d'utiliser iterator() lorsque l'ensemble de résultats est volumineux, mais contient une grande quantité des mêmes données, ou lorsque l'intégralité de l'ensemble de résultats ne sera pas utilisée.
5. Dans les relations un-à-plusieurs et plusieurs-à-un, l'utilisation du mécanisme de chargement différé entraînera l'initialisation de nombreux objets lors de leur utilisation, ce qui peut économiser de l'espace mémoire et réduire la charge sur la base de données et sur la collection. dans PO Lorsqu'elles ne sont pas utilisées, les interactions mutuelles avec les bases de données peuvent être réduites ainsi que le temps de traitement.
6. Lorsqu'il y a un PO associé (objet persistant), si default-cascade="all" ou "save-update" est utilisé, lors de l'ajout d'un nouveau PO, veuillez faire attention à l'opération d'affectation de la collection dans le PO, car cela peut entraîner plusieurs opérations de mise à jour.
7. Pour des opérations telles que l'ajout, la modification et la suppression de grandes quantités de données ou l'interrogation de grandes quantités de données, le nombre d'interactions avec la base de données est le facteur le plus important qui détermine le temps de traitement. La réduction du nombre d'interactions est le meilleur moyen. pour améliorer l'efficacité, donc pendant le processus de développement, veuillez définir show_sql sur true, avoir une compréhension approfondie du processus de traitement d'Hibernate et essayer différentes méthodes pour améliorer l'efficacité. Essayez d'afficher chaque page autant que possible et réduisez les opérations sur la base de données à moins de 100-150 éléments. Moins il y en a, mieux c'est.
Ce qui précède sont quelques réflexions sur l'optimisation des performances d'hibernation pendant le développement de projets avec struts+hibernate+spring.