Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Schnelle Datenbank ohne Server und ohne BDE (https://www.delphipraxis.net/165544-schnelle-datenbank-ohne-server-und-ohne-bde.html)

Jackie1983 5. Jan 2012 07:23

Datenbank: ? • Version: ? • Zugriff über: ?

Schnelle Datenbank ohne Server und ohne BDE
 
Hallo,

unser Programm hat als log eine formatierte Textdatei verwendet. Jetzt möchten wir das ganze auf eine DB umstellen da das suchen demnächst über eine GUI erfolgen soll. Die Daten müssen also nicht mehr lesbar sein.

Pro Sekunde müssen ca. 2-4 Datensätze gespeichert werden. Es darf kein Server verwendet werden und keine zusätzliche Software.

Mein Test mit xml ergab das das ganze viel zulangsam ist. Fürs laden und speichern über 5 Minuten bei 3MB.

Kennt jemand eventuell noch ein anderes Format?

gruß

DeddyH 5. Jan 2012 07:28

AW: Schnelle Datenbank ohne Server und ohne BDE
 
Auf Anhieb fallen mir da SQLite, FB Embedded und Absolute Database ein.

p80286 5. Jan 2012 07:36

AW: Schnelle Datenbank ohne Server und ohne BDE
 
XML ist ja eher ein Austauschformat (zwischen zwei Datenbanken) Wie wäre es ein "File of myRecord" zu verwenden, wenn Du schon keine "zusätzliche" Software benutzen darfst. Fällt embedded Firebird bzw. Interbase auch unter zusätzlich?

Gruß
K-H

Bernhard Geyer 5. Jan 2012 08:36

AW: Schnelle Datenbank ohne Server und ohne BDE
 
Zitat:

Zitat von DeddyH (Beitrag 1144385)
Auf Anhieb fallen mir da SQLite ...

Wenn schnell wichtig wäre dann würde ich SQLite nicht empfehlen. Jedenfalls ist diese DB bei meinen Tests mit Zeos vor 2-3 Jahren geschwindigkeitstechnisch stark abgefallen.

DeddyH 5. Jan 2012 08:41

AW: Schnelle Datenbank ohne Server und ohne BDE
 
Ich persönlich würde ja auch Firebird bevorzugen, aber bevor man mir Voreingenommenheit vorwerfen kann, nenne ich halt auch Alternativen ;) Mit SQLite habe ich persönlich überhaupt keine Erfahrungen, ABS habe ich nur vor Jahren einmal ausprobiert und bin da schnell auf Probleme gestoßen. Allerdings weiß ich nicht, wie das mittlerweile aussieht.

CCRDude 5. Jan 2012 08:49

AW: Schnelle Datenbank ohne Server und ohne BDE
 
"XML" ist ein Dateiformat, keine Implementierung, und kann daher an sich gar nicht zu langsam sein. Allerdings kann ich mir schon vorstellen, daß die meisten Implementierungen langsam sind. Aber natürlich ist XML tatsächlich nicht gerade für realtime geeignet, selbst mit schnelleren Implementierungen geht es sicher immer besser, und wenn dann noch die Suchfunktion dazukommt...

Die typisierte Datei ist für ein einfaches Format sicherlich super. Sobald aber Felder in unterschiedlicher Größe vorkommen oder die Datenmengen so groß werden, daß ein Index bei der Suche von Vorteil ist, würde ich auch zu einer Datenbank raten.

SQLite würde mir da auch als erstes einfallen. Und das Argument Geschwindigkeit ist da extrem relativ. Zum einen lernt man mit Datenbanken nie aus, und mindestens 90% der Geschwindigkeitsprobleme, mit denen ich bisher zu kämpfen hatte, lagen an ungünstigen Tabellen, Indizes und Queries und der Platte. Geschwindigkeit bei Dir ist in erster Linie bei INSERTs relevant, bei anderen kann das etwas ganz anderes sein. Das einzige unpraktische an SQLite: wenn Du während des Loggens suchen willst, und die Suche komplex wird (etwa nach Teilstrings, das lässt sich nur schlecht per Index optimieren), läuft das nicht parallel ab, da wäre ein Cache für's Logging notwendig (paralleler Thread mit Pool an zu schreibenden Log-Einträgen, mMn sowieso zu empfehlen, damit das Logging nicht aufhält).

mkinzler 5. Jan 2012 09:14

AW: Schnelle Datenbank ohne Server und ohne BDE
 
Voteil von FireBird embedded wäre zudem die zusätzlichen Features des DBMS und die Skalierbarkeit ( ohne Programmänderungen läuft das Programm auch mit der Serverversion)

generic 5. Jan 2012 09:18

AW: Schnelle Datenbank ohne Server und ohne BDE
 
Um die Liste der Kollegen hier zu erweitern:
Es gibt auch noch MSSQL Compact Edition.

>Es darf kein Server verwendet werden und keine zusätzliche Software.
Das ist wohl eine Anforderung die *alle* übersehen haben.
Für die die meisten genannten Produkte wird du zumindest die Engine (Treiber-Dlls etc.) nutzen müssen.

Mit Delphi Bordmitteln würde mir nur die Client-Datasets einfallen bzw. via ADO Client-Datasets erstellen.

DeddyH 5. Jan 2012 09:20

AW: Schnelle Datenbank ohne Server und ohne BDE
 
Ich denke nicht, dass wir das übersehen haben. Allerdings ist der Begriff "zusätzliche Software" nur unzureichend definiert. Sind schon DLLs gemeint, oder geht es um Installation zusätzlicher Programme/Dienste, wie sie für einen DB-Server notwendig wären?

mkinzler 5. Jan 2012 09:21

AW: Schnelle Datenbank ohne Server und ohne BDE
 
Bei SQLite und Firebird embedded muss keine weitere Software installiert sein, es handelt sich ja nur um Dlls, die man auch ins Programmverzeichnis ablegen kann.
Zudem gibt es Lösungen, welche die Dll in die Exe einlagern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz