Man kann natürlich jeden
SQL Server so füttern das er optimale Performance bringt.
In der Praxis , fernab von Benchmarks hat man dann aber andere Zwänge.
z.B.: über Jahrzehnte entwickelte Anwendungen (> 1000000 Zeilen) von
BDE Paradox-
zeiten bis zur heutigen
SQL Datenbanken evolutionär weiterentwickelt.
Es werden Fremdkomponenten benutzt auf die man kaum Einfluss hat
und natürlich hat man damals den Fehler gemacht auf das
RAD Konzept zu setzen mit seinen
ganzen
DB Controls. Unsere Software verfügt dann noch über einen selbst enwickelten
C-Compiler mit Zugriff auf die ganzen Datenbankobjekte. D.h. Kunden haben Makros
im Einsatz die mit Tables etc. direkt arbeiten. Das muss alles noch funktionieren.
Man kann da nicht immer alles neu entwckeln. Zumal bei jeder Änderung die Verläßlichkeit
leidet.
Nichts desto trotz haben wir dank AnyDAC (heute FireDAC) alle Hürden gemeistert und unsere
Anwendung in die
SQL Welt überführt und sie läuft robust , verläßlich und in der Regel
schnell genug. Allerdings haben wir uns nicht auf einen
SQL Server eingeschossen und
können zwischen verschiedenen
SQL Servern umschalten. D.h der gleiche Anwendungscode läuft
,nur mit einigen geänderten
SQL Abfragen, da wo es halt Serverunterschiede gibt.
Mit so einer realen Anwendung kann man dann sehen, wie unterschiedlich die Server sind.
Firebird
ist gut nutzbar und wird in der Hauptsache von uns eingesetzt wenn die Datenmengen nicht
zu groß werden, also bei kleineren Kunden.
Postgres ist geringfügig schneller,
MSSQL ist 4-10 mal schneller. Da kommt bei den Nutzern die Geschwindigkeitsprobleme haben
immer ein Wow Effekt auf.
Oracle scheint noch etwas schneller zu sein.
Selbstverständlich haben wir versucht auf allen Ebenen die möglichst schnellste Lösung
umzusetzen, passende Indices gesetzt etc. (Firebird Config Änderungen haben nur minimale
Änderungen gebracht).
Wenn man einzelne, optimale
SQL´s absetzt tun die Server sich alle nicht viel, wenn das
Design stimmt (Indices etc.). Wo Firebird aber richtig auffällt ist die langsame Verarbeitung
vieler kleiner Querys. Wo Firebird sich für jede noch so kleine Abfrage viel Zeit lässt
sind
MSSQL und Oracle bis zu 10 mal schneller. Sehr gut beobachten kann man das an
alten Formularen die heftig von
DB-Grids und Masterdetails gebrauch machen. Wenn der Master
20 Details aktualisieren muss, kann man von flottem Scrollen im Grid nicht mehr sprechen.
Bei
MSSQL/Oracle geht das so geschmeidig wie zu alten
Paradox Tabellenzeiten.
Das bezieht sich nur auf
FB 2.5. Die Umstellung auf
FB 3 steht noch aus. Mal sehen ob
sich was getan hat.