61 Stimmen

Wie lässt sich die Leistung von NHibernate am besten verbessern?

Ich habe eine Anwendung, die NHibernate als ORM verwendet, und manchmal kommt es zu Leistungsproblemen aufgrund der Art und Weise, wie die Daten von ihr abgerufen werden. Was kann man tun, um die Leistung von NHibernate zu verbessern? (Bitte beschränken Sie sich auf eine Empfehlung pro Antwort)

1voto

Watson Punkte 564

Zwischenspeichern, Zwischenspeichern, Zwischenspeichern -- Verwenden Sie Ihr First-Level-Caching richtig [vorzeitiges Schließen von Sitzungen oder Verwendung von StatelessSession zur Umgehung des First-Level-Cachings]? Müssen Sie einen einfachen Cache der zweiten Ebene für Werte einrichten, die sich nur selten ändern? Können Sie Abfrageergebnissätze zwischenspeichern, um Abfragen zu beschleunigen, die sich nur selten ändern?

[Auch Konfiguration - können Sie Elemente als unveränderlich festlegen? Können Sie Abfragen so umstrukturieren, dass nur die benötigten Informationen zurückgegeben werden, und diese in die ursprüngliche Entität umwandeln? Wird Batman in der Lage sein, den Riddler aufzuhalten, bevor er den Damm erreicht?]

0voto

Axl Punkte 7802

Was lotsoffreetime sagte.

Lesen Sie Kapitel 19 der Dokumentation, "Verbesserung der Leistung".
NHibernate: http://nhibernate.info/doc/nhibernate-reference/performance.html
Hibernate: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html

Verwenden Sie SQL Profiler (oder ein gleichwertiges Programm für die von Ihnen verwendete Datenbank), um langlaufende Abfragen zu finden. Optimieren Sie diese Abfragen mit geeigneten Indizes.

Für Datenbankaufrufe, die auf fast jeder einzelnen Seite einer Anwendung verwendet werden, verwenden Sie CreateMultiQuery, um mehrere Ergebnissätze aus einer einzigen Datenbankabfrage zurückzugeben.

Und natürlich der Cache. Die OutputCache-Direktive für Seiten/Steuerelemente. NHibernate-Caching für Daten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X