1 <property name="hibernateProperties">
2 <Requisiten>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- Erstellen/aktualisieren Sie die Datenbanktabellen automatisch, wenn die JVM startet
6 <prop key="hibernate.hbm2ddl.auto">update</prop> -->
7 <!-- Schalten Sie die Stapelverarbeitung aus, um bessere Fehlermeldungen unter PostgreSQL zu erhalten
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </Requisiten>
11 </Eigenschaft>
Je größer die Abrufgröße eingestellt ist, desto seltener wird die Datenbank gelesen und desto schneller ist die Geschwindigkeit. Je kleiner die Abrufgröße ist, desto häufiger wird die Datenbank gelesen und desto langsamer ist die Geschwindigkeit.
2. Wenn es sich um ein sehr großes System handelt, wird empfohlen, HTM-Dateien zu generieren. Beschleunigen Sie die Seitenwerbung.
3. Legen Sie nicht die gesamte Verantwortung auf den Ruhezustand, überarbeiten Sie den Code, reduzieren Sie Vorgänge in der Datenbank, vermeiden Sie die Verwendung von In-Vorgängen bei Datenbankabfragen und vermeiden Sie rekursive Abfragevorgänge. Die Qualität des Codes und die Rationalität des Systemdesigns bestimmen System. Leistungsniveau.
4. Wenn Sie große Datenmengen abfragen, verwenden Sie list() oder iterator() mit Vorsicht, um Abfrageergebnisse zurückzugeben.
(1). Wenn Sie List() verwenden, um Ergebnisse zurückzugeben, initialisiert Hibernate alle Abfrageergebnisse in persistenten Objekten. Wenn die Ergebnismenge groß ist, nimmt dies viel Verarbeitungszeit in Anspruch.
(2). Wenn iterator() zum Zurückgeben von Ergebnissen verwendet wird, ruft Hibernate die Abfrage auf, um das entsprechende Objekt jedes Mal zu initialisieren, um das Objekt zurückzugeben und das Objekt für große Datenmengen zu verwenden angerufen werden. Verbringen Sie mehr Zeit. Es ist vorteilhaft, iterator() zu verwenden, wenn die Ergebnismenge groß ist, aber eine große Menge derselben Daten enthält, oder wenn nicht die gesamte Ergebnismenge verwendet wird.
5. In Eins-zu-Viele- und Viele-zu-Eins-Beziehungen führt die Verwendung des verzögerten Lademechanismus dazu, dass viele Objekte initialisiert werden, wenn sie verwendet werden. Dies kann Speicherplatz sparen und die Belastung der Datenbank und der Sammlung verringern in PO Bei Nichtgebrauch können gegenseitige Datenbankinteraktionen reduziert und die Verarbeitungszeit verkürzt werden.
6. Wenn eine zugehörige PO (persistentes Objekt) vorhanden ist und default-cascade = „all“ oder „save-update“ verwendet wird, achten Sie beim Hinzufügen einer neuen PO bitte auf die Zuweisungsoperation der Sammlung in der PO. da dies zu mehreren Problemen führen kann. Führen Sie einen Aktualisierungsvorgang durch.
7. Bei Vorgängen wie dem Hinzufügen, Ändern und Löschen großer Datenmengen oder dem Abfragen großer Datenmengen ist die Anzahl der Interaktionen mit der Datenbank der wichtigste Faktor, der die Verarbeitungszeit bestimmt. Die Reduzierung der Anzahl der Interaktionen ist der beste Weg Um die Effizienz zu verbessern, setzen Sie bitte während des Entwicklungsprozesses show_sql auf true, verstehen Sie den Verarbeitungsprozess von Hibernate genau und probieren Sie verschiedene Methoden aus, um die Effizienz zu verbessern. Versuchen Sie, jede Seite so oft wie möglich anzuzeigen und die Vorgänge in der Datenbank auf weniger als 100–150 Elemente zu reduzieren. Je weniger, desto besser.
Im Folgenden finden Sie einige Gedanken zur Leistungsoptimierung im Ruhezustand während der Projektentwicklung mit Struts+Hibernate+Spring.