Laden...

Eingebettete Datenbank

Erstellt von Lexodus vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.975 Views
L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 15 Jahren
Eingebettete Datenbank

Hallo zusammen

Wir sind hier gerade einige Datenbanken für den "Embedded" Bereich am evaluieren. Grundsätzlich haben wir ne Fette-Server App. Die Embedded Datenbanken wollen wir dazu verwenden einen Teil der MasterDB abzugleichen und für offline Clients zur verfügung zu stellen.

Wir haben schon einige DB's angeguckt und nie wirklich was gefunden das unseren Anforderungen genügt.

  • VistaDB ist so dermassen langsam das erlebt man nicht mehr. (Ein Select auf 30'000 Sätze geht da ewigs). Könnte aber ansonsten alles was wir brauchen, Views, SQL Unterstützung, Transaktionen (pro Connection).

  • SQLLite sieht eigentlich viel versprechend aus, in der Doku steht aber drinnen das eine Transaction sich auf alle offenen Verbindungen auswirkt und man während eine Transaction aufm Server stattfinden garnix darauf machen kann. Finde ich sehr schade da die DB sonst in Ordnung ist. Geht bei uns aber garnet.

  • FireBird ist ähnlich wie VistaDB aber auch langsam. Kann aber Views und alles.

  • SQL Compact edition, komischerweise ist das wohl der grösste Witz unter allen DB's. Keine Views. Also auch ungenügend. Zudem ist auch die Performance übel.

  • Dann hätten wir da die MS Desktop Edition des SQL's die können wir net weil wir die DB mitausliefern wollen, also ohne installation (Wie der Titel schon sagt).

verwendetes Datenbanksystem: <wüsste ich gerne>

Hat jemand vielleicht noch einen Tipp was es sonst noch so gibt?

  • Die Performance sollte akzeptal sein (muss net so schnell sein wie ne richtige Fette DB, man sollte aber die Antwort noch erleben)
  • Views und Verbindungsgebundene Transaktionen sollten schon drinnen sein. (Joins und Aggregates natürlich auch)

Ironischerweise würde Access, hätte es nicht die Indexlimitierung, von dem was es kann und von der Geschwindigkeit her eigentlich passen.

@Edit: Sowas ähnliches wie SQLLite ohne diese Transaktions/Verbindunglimitierung wäre der hammer. Wir überlegen uns schon ob wir da versuchen sollen "drum rum" zu programmieren 🙂

Danke und Gruss

Lex

If you can't make it, fake it.

F
10.010 Beiträge seit 2004
vor 15 Jahren

Wenn Du eine Lokale DB haben willst, was hat das dann mit Server zu tun?
Embedded DB's sind doch als SingleUser Varianten gedacht und deshalb
verstehe ich den einwand zu SQLite nicht.

Und zum MS Sql Compact, nur weil Du auf Views bestehst, ist es keine schlechte
SingleUser DB, zumal sie auch auf PDA's läuft.

FireBird Embedded ist tatsächlich nicht sonderlich schnell, aber der Server
( Installer ist << 5 MB ) ist schon recht flott.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 15 Jahren

Hallo und Danke

Ich hab nur gesagt das wir ein Teil der MasterDB abgleichen wollen.

Zu SQL-Compact, wollte die nicht schlecht machen, aber Views sollte wohl doch jede DB können?

Zum Thema SQL-Lite
Nur weil ne DB "Single User" ist heisst das noch lange nicht dass du immer nur eine schreibende Transaction auf einmal hast?

Wir werden aber wohl doch SQL-Lite verwenden und den Code teilweise umgestalten, wir haben sogar 1nen "Bug" gefunden als wir die verwendet haben.

SQL-Lite wird wohl erste Wahl sein. Trotzdem danke für die Antwort.

If you can't make it, fake it.

F
10.010 Beiträge seit 2004
vor 15 Jahren

Geschachtelte Transactions sind etwas, was der grosse MS Sql-Server auch noch nicht so lange kann.

Und nein, Views braucht nicht jeder, schon garnicht, wenn es um SingleuserDB's
mit so kleinen Dateigrössen wie beim Compact geht.

Und die DB heisst SQLite, das ist ein name.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 15 Jahren

Jop da muss ich dir Recht geben, die Ansprüche die wir haben gehen ein wenig über den klassischen embedded Gedanken hinaus. (Deshalb auch die Views).

Bin auch kein DB spezialist, aber Geschachtelte Transaktionen können die meisten grossen DBs (und ich beziehe mich hier nicht nur auf MS-SQL) doch schon seit geraumer Zeit. Ich weiss nicht was für dich "nicht so lange ist" aber so 5-10 Jahre dürften das schon sein.
Also MS SQL 2000 kann das ziemlich sicher, und der hat doch schon ein paar Jahre aufm Buckel. (Unsere Software läuft unter anderem auf nem MS-SQL 2000 und es gab in dieser hinsicht nie Probleme).

Die Frage ist auch was bleibt dir denn übrig wenn du nichtmal 2 schreibende Transaktionen öffnen kannst? (Bei zwei verschiedenen Connections) und ich mein jetzt nicht im embedded umfeld.

Bei den embedded Systemen kann man das so stehen lassen, bei ner "richtigen" DB aber wohl kaum?

If you can't make it, fake it.

G
497 Beiträge seit 2006
vor 15 Jahren

da Smart Clients immer noch mit extrem wenig Speicher auskommen müssen und die SQL-Engine mit jedem Feature (besonders, wenn es um Transaktionen geht) mehr Speicher verbrät, ist es relativ normal, daß die kleinen Datenbanken für CE- und WM-Geräte das nicht oder nur in geringem Maße unterstützen. Bringt ja auch nix, wenn die Datenbank zwar alles kann, dafür aber nur auf Highend-Geräten läuft. Wir haben hier Scanner, die insgesamt 64 MB Speicher zur Verfügung haben, davon stehen nur rund 28 MB für Anwendungen zur Verfügung (Aufrüsten des Datenspeichers ist zwar möglich, aber der ist dann ziemlich langsam). Wenn da jetzt noch die Datenbank dazukommt (und im gegebenen Fall liegt alles im Speicher der Anwendung, ansonsten ginge für den Datenbankcontainer auch noch Speicher im Object Store drauf), ist schnell Schicht. Da ist mir ein sehr abgespecktes SQLite sehr recht.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 15 Jahren

Ist halt hier auch immer die Frage was ist embedded.
Hätt ich eigentlich klarer ausdrücken sollen, embededd heisst für mich nur in eine Applikation eingebettet, nicht zwingend auf Mobile geräten oder embedded im Sinne von begrenzten Ressourcen.

If you can't make it, fake it.