Ok, hier auch noch meine Testergebnisse:
Testablauf: Diverse Inserts/Selects/Updates/Deletes/Blob-Aktionen/...
Code verwendet wo parametrisierte Abfragen bzw. bei Selects die bei Desktop-
DB's schnelleren SetRange/ApplyRange-Methoden
Vergleich:
- ADS Local Server 6.11 (Neue Version sind Lizenzrechtlich Problematisch das Remote Desktop Serverlizenz nötig macht).
- Absolute Database 5.18
- TurboDB 5.15
- SQLite 3,61 mit ZEOS 6.6.3
- Accuracter 4.3 bzw. 4.7Pre4
- H2 per JNI angebunden
Außen vor:
-
MySQL Embedded (Lizenzrechtlich Problematisch bzw. sehr Teuer)
- MS
SQL Everywhere (.NET Framework nötig)
- PostgreSQL: Keine Embedded Betrieb möglich
- Blackfish
SQL: Lizenzkosten bzw.
DB-Größe beschränkt. .NET nötig
- Firebird: Portierung Quellcode nicht mehr fertig bekommen im Test
- NexusDB: Lizenzkosten für unseren Anwendungsfall (Pro Kunde 150$ nötig da weiterverteilung von Exe mit
DB)
- ElevateDB: Höherer Portierungsaufwand da etwas andere Logik bei Verwendung parametrisierter Abfragen. Portierung abgebrochen.
Ergebnis:
ADS: Im allgemeinen sehr schnell und stabil, jedoch aufgrund fehlender
Unicode-Unterstützung Problematisch (UTF8-Codierung + Nachfilterung nötig -> Performance) sowie teilweise bei Like-Abfragen langsam
AbsoluteDB: Bugs in Like-Abfragen mit
Unicode (Fehlerhafte Ergebnismenge), Updates sehr langsam
TurboDB: Performanceprobleme bei komplexen Abfragen über mehrer Tabellen mit JOINS. Einige ältere Versionen hatten fehlerhafte Behandlung von JOINS (Falsche Ergebnismenge).
SQLite: Performanceproblem bei Update's und Delets
Accuracer: Fehlerhaftes Handling von Parametrisierten Abfragen. Auch mit nachgelieferten Betaversionen nicht gelöst.
H2: In weiten teilen (trotz JNI + Java) sehr schnell. In eigenen Testszenarien konnte von der Performance nur ADS Local Server mithalten.
Windows Vista - Eine neue Erfahrung in Fehlern.