Frage

Wie funktioniert Query-Caching funktioniert und wie funktioniert es verbessert die Leistung in nHibernate?

War es hilfreich?

Lösung

Wenn eine Abfrage zwischengespeichert wird, NHibernate werden die IDs der Einheiten-Cache aus der Abfrage führt.

Sehr wichtig ist, ist es zwischenspeichert nicht die Entitäten selbst - nur ihre IDs. Dies bedeutet, dass Sie mit ziemlicher Sicherheit gewährleisten wollen, dass diese Unternehmen werden auch in Ihrem Second Level Cache sein cachable gesetzt. Andernfalls NHiberate wird die IDs der Objekte aus der Abfrage-Cache, aber dann in die Datenbank zu gehen gezwungen werden, um die tatsächlichen Einheiten zu erhalten. Das könnte teurer sein als nur in erster Linie auf die Datenbank gehen!

Auch wichtig: Anfragen werden auf der Grundlage ihrer genauen SQL und Parameterwerte zwischengespeichert. Etwaige Unterschiede in einer von denen, bedeutet, dass die Datenbank getroffen werden. So wollen Sie wahrscheinlich nur die Abfragen cachen, die wenig Varianz in ihren Eingängen haben.

Andere Tipps

Wenn Sie das Zwischenspeichern der nHibernate ermöglichen Ergebnisse speichern Abfrage irgendwo im Inneren, wenn Sie Abfrage ausführen. Wenn Sie versuchen, mit den gleichen Parametern auszuführen Abfrage wieder wird es Ergebnisse aus dem Cache erhalten, nicht aus der Datenbank, und natürlich ist es viel schneller! aber Vorsicht, dass andere Anwendungen Datenbank im Hintergrund ändern können! Aber nHibernate können Caches aktualisieren.

Durch die Verwendung nHibernate nicht braucht, um den Datenspeicher es, was in den Cache-Zugriff zuzugreifen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top