Applikationen, die eine Datenbank verwenden, sind oft zu langsam, obwohl man doch einen großen Server für die Applikation und einen zweiten großen Server für die Datenbank bereitgestellt hat. Und schaut man sich diese beiden an, sind sie womöglich noch nicht einmal so stark ausgelastet.
Das Problem ist, dass die Verbindung zwischen den beiden Servern zwar sehr schnell ist, was man vor allem daran sieht, wenn man große Datenmengen auf einmal überträgt.
Typische Datenbank-Applikationen benötigen aber viele einzelne Zugriffe auf die Datenbank. Bei jedem dieser Zugriffe muss ein Kommunikationsprotokoll angewendet werden, also mehrere Male eine Antwort über die Verbindung abgewartet werden. Deshalb führen viele kleine Datenbankzugriffe zu einer Verlangsamung der Applikation, weil dauernd auf die Netzwerkkommunikation gewartet werden muss.
Was kann man tun?
Sinnvoll ist sicher, die Applikation so zu optimieren, dass durch geschickte Queries mehr Daten auf einmal übertragen werden. Das ist oft nicht einfach, wenn man Frameworks wie zum Beispiel Hibernate oder Eclipselink verwendet.
Eine andere Optimierung ist es, Datenbank und Applikation auf demselben Server laufen zu lassen. Diese Optimierung ist auch nicht einfach, weil das die Systemadministratoren in der Regel überhaupt nicht mögen, aber es ist eine Möglichkeit, die man doch in Betracht ziehen sollte, wenn sich anders keine hinreichend gute Performance erzielen lässt.
Schreibe einen Kommentar