Analyse einer TD 6.2 Geschäftsanwendung hinsichtlich der Datenbank-Performance bei einem Schweizer Unternehmen

Die Gupta SQLBase war die erste Client-/Server-Datenbank für Intel-Prozessoren, also für das Microsoft-Betriebssystem Windows, entwickelt von Umang Gupta, dem Gründer des gleichnamigen Unternehmens und vormaligen Projektleiter bei Oracle.

Das ist mittlerweile ca. zwei Jahrzehnte her und in dieser Zeit hat sich die SQLBase als ein sehr leistungsfähiges Datenbank-Managementsystem etabliert, das schnell zu installieren und einfach zu konfigurieren ist, das mit vergleichsweise geringen Ressourcen auskommt und über viele Jahre nahezu wartungsfrei läuft. Den gestiegenen Anforderungen wurde nach und nach mit neuen Versionen mit neuen Features Rechnung getragen.

So weit, so gut. Doch mit den Jahren wachsen auch die Datenbestände, die Zahl der zu bedienenden Anwendungen nimmt zu, und es werden auch immer mehr Anwender, die die Datenbank benutzen. Und so kann auch eine SQLBase-Installation an ihre Grenzen stoßen, wenn auf diese geänderte Umwelt nicht rechtzeitig und angemessen reagiert wird.

Manche bis dato zufriedene SQLBase-Anwender neigen dann dazu, das Kind mit dem Bade auszuschütten und nach einem anderen Datenbanksystem zu rufen – einer Entscheidung mit sehr weit reichenden Konsequenzen (nicht nur finanzieller Natur), die in vielen Fällen gar nicht notwendig gewesen wäre, hätte man zunächst die Möglichkeiten der SQLBase ausgereizt.

Folgende Ursachen für Problembereiche können genannt werden:

  • Nutzeranzahl: Die Anzahl der gleichzeitig arbeitenden Anwender, Prozesse und Geräte kann sich im Laufe der Zeit wesentlich erhöht haben. Gupta Technologies nennt eine Größe von circa 100 als Zielgruppe für sein Datenbanksystem SQLBase.
  • Sperrmechanismen im Mehrbenutzerbetrieb: Obwohl SQLBase sowohl „optimistic“ als auch „pessimistic locking schemes“ unterstützt, war die Implementierung dieser Mechanismen bis zu der letzten Version nur suboptimal gelöst. Als Folge davon konnten länger dauernde Transaktionen dazu führen, dass eine Vielzahl von Anwender keinen Datenzugriff mehr hatten.
  • Datenvolumen: Das gespeicherte und zu verarbeitende Datenvolumen kann sich durch zusätzliche Nutzer, neue Nutzungsbiete, Import- und Exporttabellen, usw. teilweise dramatisch erhöht haben. In diesem Bereich ist Gupta Technologies aufgrund von sehr unterschiedlichen Datenmodellen, die implementiert sein können, nicht sehr spezifisch. Datenbanken, die eine Größe von 5 GByte überschreiten, sind aber potentiell problematisch anzusehen. Aufgrund recht einfacher Organisation der physischen Datenstrukturen (Row- und Extent Pages) bietet SQLBase zudem auch nicht so viele Möglichkeiten wie das Datenbanksystem von MS SQL Server.
  • Parallele Batch- und Dialogbearbeitung: Viele Datenbanknwendungen sind dadurch gekennzeichnet, dass bestimmte Verarbeitungen im Dialog über eine GUI vorgenommen werden, während andere Verarbeitungsschritte beispielsweise durch gespeicherte Prozeduren ausgeführt werden. Ab einer bestimmten Größenordnung und Ausführungsdauer können sich derartige Prozesse bei SQLBase miteinander beeinflussen, dass Performance-Einbußen bis hin zu langen Sperrzeiten auftreten.
  • Technische Erweiterungen: Um derartige Probleme zu lösen, besteht die Möglichkeit, Datenhaltungen in Clustern vorzunehmen, weiteres Memory zur Verfügung zu stellen oder mehrere CPU’s zu installieren. Alle diese Möglichkeiten, die dann beispielsweise auch ein performantes Online Backup ermöglichen, sind derzeit in SQLBase nicht vorhanden.

Um herauszufinden, ob und ggf. wo Engpässe vorliegen, führt MD Consulting ein Audit durch, dessen Auswertung Anhaltspunkte dafür bietet, wo z. B. die Indizierung verbessert werden kann und muss, bzw. wo und wie die Datenzugriffe aus den Anwendungen optimiert werden können.

So wurde eine Analyse der Geschäftsanwendung durchgeführt und die schriftliche schriftliche Fixierung der Ergebnisse bei gleichzeitiger Erarbeitung einer Vorgehensweise und von Empfehlungen für Verbesserungsmaßnahmen.

Die Analyse erfolgt mit folgenden Zielen:

1. Erarbeitung von Empfehlungen für mögliche Optimierungen der Geschäftsanwendung vor allem bezüglich der Datenbank Gupta SQLBase.

2. Erarbeitung einer Empfehlung für eine mögliche Migration auf ein alternatives Datenbanksystem (z.B. MS SQLServer oder Oracle) und der Erstellung eines Maßnahmenplans für eine Migration auf ein alternatives Datenbanksystem. Der Maßnahmenplan beinhaltet im Wesentlichen folgende Punkte: Vorgehensweise, notwendige Aufwendungen, Bedarf an Lizenzen, Bedarf an Schulungen.

20140124

Bestandsaufnahme Installation:
Maßnahmen und Empfehlungen:

  • Installation SQL Console auf Datenbankserver
  • Arbeit mit SQL Console
  • SQL.INI
  • Arbeit mit Views
  • Arbeit mit Triggern und Stored Procedure

Team Developer:

  • Einweisung Isolation Level , Demonstration Read Only Connect (mit Session Connect , um nur einen Handle im RO Level zu connecten)
  • Fehlerbehandlung When SqlError
  • Behandlung Bind Variablen in Where Clauseln (Empfehlung keine Bind Variablen)
  • Empfehlung localer Sql Handle in Funktionen
  • Keine umfangreiche SQL Aktionen (Insert,Update) in Fetch Schleifen
  • (Daten in Arrays buffern

Analyse der Team Developer Anwendung:
Kleine Musteranwendung TD 6.2:

  • Mit Connect Funktionen
  • Bufferung SQL Ergebnisse in Arrays
  • Funktionelle Klassen
  • Table/Grid
  • Connect auf Microsoft SQL Server (ODBC/OLE DB)
  • Connection String (Erzeugen einer UDL Datei)

Fazit:
Empfehlung zum Umstieg auf Microsoft SQL Server gab MD Consulting vorerst nicht ab. Stattdessen wurde die Optimierung der Team Developer-Anwendung focusiert.