Hibernate mit Caching beschleunigen

Gregor Ottmann | März 17, 2006 on 10:36 am | In Datenbanken, Know-How |

Caching ist gut - wer mag schon jedesmal zum Telefonbuch greifen, wenn er eine Nummer braucht, die er ständig wählt? Nein, da verwendet man lieber einen First-Level-Cache und merkt sich die Nummer oder greift auf einen Second-Level-Cache zu, was soviel bedeutet wie eine PostIt-Notiz mit der Nummer am Monitor. So kriegt man die Telefonnummer schneller, wählt früher und kommt pünktlich zum Abendessen heim. Wählst Du noch oder isst Du schon?

Wenn man dieses Vorgehen bei Telefonnummern sinnvoll findet, sollte man es doch eigentlich auch anwenden, wenn man eine Datenbank benutzt, oder? Gerade dann, wenn man nicht nur kleine Queries abschießt, sondern stattdessen mit Hibernate große Anfragen konstruiert, sollte man an Zugriffen sparen, wo es nur geht. Dummerweise haben Optimierungen ohne Fachwissen gewisse Gemeinsamkeiten mit in Richtung Fuß abgefeuerten Waffen, folglich sollte man schon wissen, was man tut.

Für Einsteiger in dem Bereich empfehle ich das Tutorial zur Benutzung von Second-Level-Caches mit Hibernate, von dem mir PFuchs berichtet hat. Die Ergebnisse, die da in den Benchmarks auftauchen, sprechen eigentlich für sich - Optimierungen im 400%-Bereich für einfachste Anfragen haben eine gewisse Attraktivität, der man sich nur sehr schwer entziehen kann, sofern man nicht gerne sehr oft Kaffee kochen geht, während man eine Website lädt. Allerdings habe ich den Eindruck, dass am ersten Beispiel etwas nicht stimmt: Sofern mich nicht alles täuscht, ist im ersten dort dargestellten Hibernate-Mapping das Caching bereits aktiviert, obwohl es das nicht sein sollte.

Keine Kommentare vorhanden »

RSS-Feed für Kommentare zu diesem Beitrag. TrackBack URI

Eintrag vornehmen

You must be LOGGED IN um einen Kommentar zu erstellen.

Entries and comments feeds. Valid XHTML and CSS. ^Top^

xml :RSS2-Feed