|
© EDV Team Süd GmbH |
||
|
Datenbank Optimierung „Optimales Datenbankdesign - Die Basis einer performanten Anwendung“
|
||
|
Durch die zunehmende Komplexität von Anwendungen stehen die Datenbank-Zugriffe immer mehr im Zentrum einer Performance-Analyse. Ungenügendes Datenbanken- und Applikationsdesign führen immer häufiger zu unnötigen Performance-Engpässen. ets hat bei mehreren Projekten federführend mitgewirkt, die ein umfassendes Redesign vonAnwendungen und Datenbanken bzgl. Performanceverbesserung zur Aufgabe hatten.
Was kann man tun?
Zunächst ist es wichtig, die bestehende Anwendung genau zu analysieren. Oft haben Kleinigkeiten in der Anwendung oder in der Datenbank-Definition fatale Auswirkungen für die Performance. Ist die Altanwendung analysiert und sind die Schwachpunkte aufgezeigt, kann man an die Problemlösung gehen. In Zusammenarbeit mit allen Beteiligten wird eine adäquate Lösung gesucht. Dabei wird sowohl die Anwendung als auch das Design der Datenbank analysiert. Die gefundene Lösung wird in einem Konzept niedergelegt und entsprechend umgesetzt.
Die Projekte
Im Folgenden werden beispielhaft drei Projekte vorgestellt, an denen ets maßgeblich mitgewirkt hat.
1. Redesign einer Vetriebssoftware für Callcenter
Problemstellung: Die bestehende Anwendung wurde unter ADABAS (über COBOL SQL-Schnittstelle) realisiert. Eine Selektionsmaske der Anwendung hatte so viele verschiedene Möglichkeiten der Auswahl, dass die benötigten DB-Zugriffe nicht fest programmiert werden konnten (was die COBOL SQL-Schnittstelle aber verlangt). Die bestehende Anwendung beschränkte sich bei der Selektion auf einige Standard-Zugriffe, die über die definierten Indices abgewickelt wurden. Alle weiteren Anfragen wurden von der Anwendung selbst bearbeitet, indem die Datenbank sequentiell gelesen wurde. Mit steigender Nutzung der Anwendung stiegen sowohl die Zugriffszeiten als auch die Anzahl der DB-Zugriffe ins Unerträgliche.
Lösung: Zunächst wurde die Datenbanktabelle so implementiert, dass für jedes Selektionsfeld ein eigener Index geschaffen wurde. Damit kann jede Anfrage über Indices abgewickelt werden. Es gibt keine sequentiellen Zugriffe auf die Datenbank mehr.
Diese Indices werden
dann seitens der Anwendung so
Ergebnis: Die Antwortzeiten verringerten sich erheblich. Die Zugriffe auf die Datenbank verminderten sich um ca. 80 %.
2. Optimierung eines Host-Gateways im Internet-Banking
Problemstellung:
Die zentrale Datenbank
des Host-Gateways ist das so genannte SessionMemory. Hier werden
sessionübergreifend Daten hinterlegt. Die bestehende Anwendung war
(aus historischen Gründen) so gestaltet, dass sowohl das
Host-Gateway das SessionMemory als auch die im folgenden gerufene
Anwendung und zuletzt noch mal das Host-Gateway die Datenbank lasen
und gleich wieder weg schrieben. Pro
Lösung: Die Anwendung wurde so umgestaltet, dass nur das Host-Gateway beim ersten Aufruf den Datensatz liest und beim zweiten Aufruf diesen wieder weg schreibt. Die Daten wurden stattdessen an die IMS-Message angehängt und per „Program-to-program-switch“ weitergereicht. Dadurch wurden je Anfrage vier der sechs DB-Zugriffe gespart.
Ergebnis: Die Performance der Anwendung verbesserte sich erheblich. Die Zugriffe auf die Datenbank verminderten sich um genau 66,66% (Einsparung von 2/3 aller Zugriffe), also ca. 4 Mio. DB-Zugriffe täglich.
|
|
3. Optimierung einer Log-Tabelle im Internet-Banking
Problemstellung: Die zentrale Log-Tabelle des Internet-Bankings drohte auf Grund steigender Zahlen der Nutzer zum Performance-Engpass zu werden. Da in die Datenbanktabelle auf Grund der Aufgabenstellung nur Sätze eingefügt werden, kommt es bei jedem Datenbank-Zugriff zu einer Index Reorganisation, der die Performance herabsetzt.
Lösung: Die Datenbanktabelle wurde so definiert, dass alle unnötigen Indices entfernt wurden. Die Anwendungen wurden entsprechend angepasst. Außerdem wurde der Index der Datenbanktabelle partitioniert. Dafür wurde dem Primär-Index ein gleich verteiltes Partitionierungskennzeichen beigegeben. Damit wird erreicht, dass die Last auf mehrere Datenbank-Komponenten verteilt wird und unmittelbar aufeinander folgende Zugriffe über unterschiedliche Datenbank-Kompo-nenten abgewickelt werden.
Ergebnis: Die Performance der Datenbanktabelle hat sich signifikant verbessert.
Was hat ets geleistet?
ets hat in diesen Projekten folgende Leistungen erbracht:
Technisches Umfeld
Das Technische Umfeld des Projektes stellt sich wie folgt dar (in Klammern die zugehörige Projektnummer):
Was können wir für Sie tun?
Sollten Sie hostseitig Datenbank-Performance-Probleme in Ihren Anwendungen haben, können wir Sie gerne mit folgenden Leistungen unterstützen:
Wir haben langjährige Erfahrungen mit dem Tuning von Datenbank-Anwendungen und können Sie mit unserem Knowhow optimal unterstützen.
Unsere qualifizierten Mitarbeiter freuen sich auf Ihre Herausforderungen!
|
|
|
||