Wir l[i]eben Datenbanken

SAP® MaxDB®

Consulting zu Datenbankentwurf und -optimierung

Bei der Optimierung von bestehenden MaxDB-Lösungen bieten wir ebenso Unter­stützung wie bei der Neu­ent­wicklung von MaxDB-basierten Anwendungen. Die dafür erforderlichen Kenntnisse entstammen der jahrelangen Zusammen­arbeit mit der SAP MaxDB-Entwicklung sowie intensiver Projekt­erfahrung.

Bei der Optimierung von bestehenden MaxDB-Lösungen sind Spezialisten gefragt, die die „Internals“ der SAP-Datenbank kennen. Unsere Support-Consultants arbeiten seit vielen Jahren eng mit dem MaxDB-Entwicklungs­team der SAP zusammen und besitzen daher intime Kenntnisse der DBMS-„Innereien“, die bis in den Quellcode hineinreichen. Mit diesem Skill-Profil im Gepäck können wir Sie bei Performance-Engpässen oder anderweitig motivierten Optimierungs­anforderungen an Ihre MaxDB-Installation mit hohem Wirkungs­grad unterstützen. Unsere Detail­kenntnisse können Ihnen auch bei der Neu­entwicklung von MaxDB-basierten Anwendungen von Nutzen sein: Da wir MaxDB von Grund auf kennen, können wir beim Entwurf des Daten­modells und der Wahl einer geeigneten Datenbank­architektur zielgerichtet beraten.

Datenmodellierung und Abfrageoptimierung

Das Drehen an Performance-Stell­schrauben eines DBMS ist wenig zielführend, solange das Datenmodell nicht sauber designt ist. Ausgangspunkt jeder Performance-Analyse oder konzeptionellen Beratung ist daher das Daten­modell. Unsere Vorgehens­weise ist naturgemäß immer top-down: vom logischen Datenbank­schema in die Niederungen der Physik. Passt das logische Daten­modell zu den Anforderungen der Anwendungs­programme, gilt das Augenmerk der Daten­organisation. Geschickte Modellierungs­entscheidungen können die Performance maßgeblich beeinflussen. Dazu zählt die Wahl des Primär­schlüssels, der die Sortier­reihen­folge bei sequentiellen Tabellen-Scans bestimmt, ebenso wie das Anlegen von Sekundär­indizes, die zur Beschleunigung von Direkt­zugriffen oder Joins dienen. Umgekehrt können sinnlose – weil vom Optimierer nicht nutzbare Indizes – unnötige Ressourcen verzehren und sollten folgerichtig entfernt werden. Entscheidende Hinweise geben oftmals die Betrachtung der Ausführungs­pläne typischer Abfragen oder die Protokolle des Tools MaxDB Database Analyzer.

Auch beim Design von SQL-Abfragen kann man viel falsch machen. Die land­läufige Ansicht, der Abfrage­optimierer werde – unabhängig von der Formulierung der Abfrage – schon das Beste rausholen, greift leider zu kurz. Denn kein Optimierer auf der Welt ist in der Lage, beispielsweise einen Cursor mit Datenbank­änderungen auf Einzel­satz­ebene in ein mengen­wertiges Update-Statement umzuformen. Aus diesem Grund nehmen wir uns bei Analyse und Design die tragenden SQL-Abfragen Performance-kritischer Anwendungen vor. Und natürlich geben wir auch unser Wissen darüber weiter, wie man dem Optimizer die richtigen Informationen (z.B. in Form von Verteilungsstatistiken) gibt, um die Laufzeit von Datenbank­operationen zu minimieren.

Hardware-Sizing und Betriebssystem-Setup

Ein Datenbank­management­system ist darauf angewiesen, vom unter­liegenden Betriebs­system­plattform ausreichende Ressourcen zugewiesen zu bekommen. Alle Bemühungen bei der Daten­modellierung oder zur Abfrage­optimierung nützen nichts, wenn das DBMS mit anderen Prozessen um CPU-Zyklen oder Haupt­speicher konkurrieren muss. Am Anfang jeder Analyse steht daher eine kurze Beschäftigung mit der Auslegung der Hardware-Konfiguration und den maßgeblichen Betriebs­system­parametern. Und obwohl MaxDB aufgrund des „Zero-Administration“-Ansatzes weniger Beschäftigung mit der Hardware erfordert als andere Systeme, gibt es doch eine Anzahl von Datenbank­parametern, die beim Setup sinnvoll einzustellen sind.

Fahrplan für die Einrichtung einer neuen MaxDB-Installation

Hier ein typischer Fahrplan für die Einrichtung einer neuen MaxDB-Installation (Schnelldurchlauf):

  • Datenmodellierung (alle Schemaebenen) inkl. erwartetes Mengengerüst
  • Sizing der Hardware-Konfiguration
  • Setup des Betriebssystems (für MaxDB maßgebliche Parameter)
  • Installation der MaxDB-Software inkl. MaxDB Database Studio
  • Einrichtung einer Schattendatenbank (falls ein High-Availability-Ansatz verfolgt wird)
  • Setup der MaxDB-Konfiguration (Parametrierung)
  • Auswahl der geeigneten Zugriffsschnittstellen (ODBC, JDBC, native Interfaces etc.)
  • Design und Test der wesentlichen SQL-Abfragen
  • Konzipierung der Administrationsfunktionen
  • Erstellen von Skripten für die Datenbankadministration