Schnelle "embedded" Datenbankengine ?

inuh

Grünschnabel
Hallihallo,
ich wollte mal fragen, ob einer von euch einen Tipp bzw. eine Empfehlung bezüglich einer schnellen und robusten "embedded" Datenbakengine auf Lager hat, die man in C#/NET-Programmen verwenden kann. (Also keine Client-Server-DB)

Es geht um eine Desktopanwendung, in der in (sehr) grossen Datenbeständen auf dem lokalen Rechner intensiv gesucht wird etc., und irgendwie bezweifle ich, dass die Kombination MS-Jet-Engine und Access da so gute Dienste leisten kann.

Ich bin für jede Empfehlung und jeden Tipp hierzu dankbar,

allerbeste Grüsse,

inuh.
 
Ja, danke, die ist schnell, jedoch ist das ja wieder eine Client-Server-Architektur.
Aber ich bin ja auf der Suchen nach einer integrierten DB-Engine, d.h. eine Engine, die
direkt in Dateien schreibt bzw. aus Dateien liest, ohne, dass ein Server dazwischen "vermittelt".
Also in etwa so, wie es die Jet-Engine mit Access-".mdb"-Dateien macht. (nur eben schneller und leistrungefähiger)

Habe jetzt mal die hier gefunden: http://www.vistadb.net/

Hat damit z.B. schon jemand Erfahrung gesammelt?

Schönen Dank.
 
Die VistaDB arbeitet ja auch über einen Provider. Wo liegt da also der Unterschied zum SQL-Server? Abgesehen davon, dass du zb mit der MSDE schnell genug sein solltest.

Vielleicht solltest auch angeben was du in etwa machen willst, denn dahin gehend tun wir uns leichter, dir zu sagen, welche Datenbank sich dazu eignet.

Du könntest zB Gentle.NET verwenden, das dürfte dem entsprechen was du willst.
 
Zuletzt bearbeitet:
Hallo nochmal,

entschuldige bitte, wenn ich mich nicht in der Sache nicht so richtig ausdrücken kann, ich komme eigentlich nicht aus der Windows-Programmier-Welt und vielleicht verstehe ich einige Sachen bezüglich lokaler Datenbanken auch nicht so richtig.

Ich hab nochmal rumgesucht und "Embedded Firebird" gefunden.
Dort steht ein Satz, der GENAU beschreibt, was ich suche:

"Both the runtime and database file can be deployed by simple copying, no separate installer or component registration is required."

Also eine Datenbankengine, die keine Installation weiteren Komponenten (Server, Provider o.ä.) benötigt, lediglich eine (oder mehrere) referenzierte DLLs werden benötigt.

Ist sowas mit SQL-Server (MSDE) auch möglich?
Ich dachte immer, daß man eben neben der Client-Anwendung auch noch den SQL-Server seperat installieren und konfigurieren müsste (wie der Name ja schon sagt).

Achso, ja, worum gehts eigentlich genau:
Eine recht grosse Artikelliste wird aus mehreren Warenwirtschaftssystemen ausgelesen und soll auf dem lokalen Desktop-Rechner "offline" zur Verfügung gestellt werden, d.h. eben auf dem lokalen Rechner in eine DB gepackt werden. Die Anwendung soll nun das komfortable Suchen, visuelle Aufbereiten und und und ermöglichen. Und - wies nun mal so ist - die Installation der Anwendung MUSS einfach sein, d.h. Sachen wie die Installation weiterer Komponenten (DB-Server o.ä) darf es nicht geben (kommt nicht von mir!)

Und nun bin ich halt auf der Suche nach der "richtigen" Datenbank dafür.

Allerbesten Dank fürs durchlesen und für die Geduld ;)
 
Gut, jetzt gibts endlich Hintergründe.

Nun, die MSDE muss schon installiert werden, ein einfaches Kopieren reicht hier nicht aus. Die Installation der MSDE kann aber in die Installation deines Programmes integriert werden. Die Erstkonfiguration kannst du aus deinem Programm heraus machen ohne dass dem User hierzu etwas auffällt.

Aber sicherlich gibt es einfachere Lösungen. Es gibt ein paar XML-Datenbanken, wobei diese nicht unbedingt als schnell zu werten sind. Dann wiegesagt der Ansatz über eine objekt-orientierte Datenbank. Hier gibt es einige, die recht gut sind und es im Grunde nichts installiert werden muss. Gentle.NET als Beispiel.

Wie die "Embedded Firebird" ist, kann ich nicht sagen, ich kenn nur die normale Version und diese konnte mich nicht überzeugen.

Access kannst du alleine schon aufgrund der Geschwindigkeit bei zunehmender Datensatzanzahl getrost unter den Tisch fallen lassen.

Eine recht gute und schnelle "embedded db" ist noch db4objects. Hab damit recht gute Erfahrungen gemacht, ist aber auch nicht mit einer herkömmlichen SQL-Datenbank vergleichbar, da ein objekt-orientierter Ansatz.

Sonst kenne ich noch die hsqldb, die läuft allerdings unter Java. Ein vergleichbares Produkt für .NET könnte eventuell VistaDB sein, wobei es hier sicherlich auch noch freie Entwicklungen geben dürfte.
 
Hey, danke für den grossen Schwung an Infos, damit kann ich ja schon eine Menge Anfangen.
Ich denke, ich werde deine DB-Vorschläge einfach alle mal ausprobieren/sichten und vielleicht auch "benchmarken".

Da wird schon was passendes dabei sein.

Allerbesten Dank und beste Grüsse,

inuih.
 
Klar darfst du fragen.

Ich schätze die Datenmenge wird sich so ca. auf 100.000 bis 200.000 Datensätze
belaufen, aber das ist auch nur eine Schätzung. Ich rechne aber mal mit dem absoluten worts-case und gehe einfach von 1/2-Mio Datensätze aus. (Da der Bestand ja auch wachsen wird).
 
Bei der Datenmenge ist die Datenbank dahinter ansich relativ egal. Ich dachte schon du gehst auf die 10mio Datensätze zu ...
 
Zurück