Hallo Zusammen,

ich habe ein Programm entwickelt, mit dem ich auf SAP Systemen testen möchte wieviele Datensätze sich pro Tabelle in einem Mandanten befinden.

Für nicht SAPler: die meisten Tabellen in einem SAP System sind Mandantenabhängig, d.h. das erste Feld im Primärschlüssel ist ein Feld in dem die Identifikationsnummer des Mandanten enthält.

Ich habe das Programm SAP Systemen mit verschiedenen DBMS drunter getestet, und bin dabei auf erstaunliches gestoßen.

Statement (CLIENT ist das Mandantenfeld - 1. Feld im Primärschlüssel):
SELECT COUNT(*) FROM tabelle WHERE CLIENT = '123'

Die Tabelle auf der ich das ausführe enthält ca. 50GB Daten (ohne Indizes).

Bei DB2 dauert die Abfrage ca. 5 Minuten
Bei Oracle ca. 35 - 45 Minuten
Bei MaxDB über 24 Stunden (danach musste ich abbrechen)

Ich habe auch Erfahrung mit MS SQL Server gesammelt... ich schätze ihn von der Performance her gleichauf mit Oracle.

Die Hardware ist leider nicht ganz vergleichbar, allerdings sind die Unterschiede auch so enorm.
Kann mir jemand erklären, wie die einzelnen Datenbanken technisch vorgehen um einen Count durchzuführen, und woher die unterschiedlichen Laufzeiten kommen?

Kann man bei MaxDB was drehen um das zu optimieren?
Was macht DB2 anders um solche Ergebnisse zu liefern?

Gruß,

Gaert