Die Qual der DB-Wahl...

Hallo MitLISTige,

ich habe einigen von mir "betreuten" näher bringen können, dass sich
der Einsatz einer Datenbank manchmal doch lohnt, auch wenn man die
Daten zur Not mit Calc verwursten kann.

Nun stellt sich dabei aber folgendes Problem: Die mitgelieferte HSQL-DB
ist (zumindest unter Ubuntu 10.04 / LO-Originalversion 3.4.3 dermaßen
quälend langsam, dass ein flüssiges Arbeiten unmöglich ist.

Als nächste "Übungsaufgabe" habe ich mir eine kleine Adressdatenbank
mit knapp 150 (Lieferanten-)Einträgen zusammengestellt. Die Daten
befinden sich in _einer_ Tabelle mit 21 Spalten (Alle VARCHAR 255).

Öffne ich die Datenbank und dann die Tabelle, braucht LO ca. 75
Sekunden. Will ich in der Tabellenansicht scrollen, so dauert es bei
jeder "Seite" wieder jeweils ca. 60 Sekunden.

Ich habe die Tabelle vereinfacht, indem ich die Felder auf CHAR 80
umgestellt habe. Das vergrößert zwar die Datei erheblich, macht für
die Datenbank-Engine aber offenbar die Sache einfacher. Mehr als eine
Halbierung der obigen Werte ist aber nicht drin gewesen. Auch weiteres
"Tuning" hat nichts gebracht...

Eigentlich wollte ich am Montag nur kurz demonstrieren, was eine
Aufteilung der Tabelle in drei neue Tabellen (Adresse->Personendaten,
Privatadressen, Firmenadressen) bringt, aber bei der derzeitigen
Geschwindigkeit schlafen mir meine "Schüler" ein.

Nun habe ich mir mal SQLite als Datenbank installiert (per ODBC) und
bin schwer begeistert! Das Teil läuft sogar mit der
importierten Originaldatenbank (670 Adressen/37 Spalten)_rasend_
schnell!

Leider gibt es einen Wermutstropfen: Man kann Tabellendefinitionen
nicht so einfach ändern. Das Umkopieren unter Verzicht auf einige
Spalten ist ja noch kein Problem, das Erweitern müsste aber durch
Neuanlegen realisiert werden.

Nun bin ich auf der Suche nach einer weiteren Datenbank. Das Teil
muss unter Windows und Linux laufen und soll mindestens so schlank
und simpel wie SQLite sein. Ich möchte keine Extrastunden für MYSQL
oder PostGres einplanen. Im Gegensatz zu SQLite müssen Änderungen der
Tabellen ohne große Tricks möglich sein.

Hat einer von euch da einen heißen Tipp?
  
Gruß,
Michael

Hallo Michael,

Hallo MitLISTige,

ich habe einigen von mir "betreuten" näher bringen können, dass sich
der Einsatz einer Datenbank manchmal doch lohnt, auch wenn man die
Daten zur Not mit Calc verwursten kann.

Nun stellt sich dabei aber folgendes Problem: Die mitgelieferte HSQL-DB
ist (zumindest unter Ubuntu 10.04 / LO-Originalversion 3.4.3 dermaßen
quälend langsam, dass ein flüssiges Arbeiten unmöglich ist.

Ich habe irgendwo mal gelesen, das solle mit Java ab einer bestimmten Version zusammen hängen. Leider habe ich da keine genaueren Angaben parat, aber evtl. hilft das ja bereits bei der Suche.

Grüße

Jens

Hallo Michael,

Nun stellt sich dabei aber folgendes Problem: Die mitgelieferte HSQL-DB
ist (zumindest unter Ubuntu 10.04 / LO-Originalversion 3.4.3 dermaßen
quälend langsam, dass ein flüssiges Arbeiten unmöglich ist.

Sollte ein bekantes Java-Versions Problem sein. Wird anscheinend
deutlich verbessert, wenn man sich auf JDK 1.6u20 oder u21 zurückzieht.

Nun bin ich auf der Suche nach einer weiteren Datenbank. Das Teil
muss unter Windows und Linux laufen und soll mindestens so schlank
und simpel wie SQLite sein. Ich möchte keine Extrastunden für MYSQL
oder PostGres einplanen. Im Gegensatz zu SQLite müssen Änderungen der
Tabellen ohne große Tricks möglich sein.

Hat einer von euch da einen heißen Tipp?

H2 ?
http://www.h2database.com/html/tutorial.html

Alex

Hallo Michael,

ich habe einigen von mir "betreuten" näher bringen können, dass sich
der Einsatz einer Datenbank manchmal doch lohnt, auch wenn man die
Daten zur Not mit Calc verwursten kann.

Nun stellt sich dabei aber folgendes Problem: Die mitgelieferte HSQL-DB
ist (zumindest unter Ubuntu 10.04 / LO-Originalversion 3.4.3 dermaßen
quälend langsam, dass ein flüssiges Arbeiten unmöglich ist.

Das ist ein Problem des Zusammenspiels von JRE mit der HSQLDB. Die
Versionen nach jre-6u22 funktionieren unter Linux zusammen mit der
HSQLDB nicht so richtig.

Du musst also sehen, dass Du die jre-6u22 bekommst:

http://www.oracle.com/technetwork/java/archive-139210.html

(ganz schön versteckt!!)

Gruß

Robert

Hallo,

Nun stellt sich dabei aber folgendes Problem: Die mitgelieferte
HSQL-DB
ist (zumindest unter Ubuntu 10.04 / LO-Originalversion 3.4.3 dermaßen
quälend langsam, dass ein flüssiges Arbeiten unmöglich ist.

Ich habe irgendwo mal gelesen, das solle mit Java ab einer
bestimmten Version zusammen hängen. Leider habe ich da keine
genaueren Angaben parat

Hier kann man sowas lesen:

http://listarchives.libreoffice.org/global/users/msg11236.html

Gruß

Stefan

Hallo MitLISTige,

zuerst einmal vielen Dank für die bisherigen Rückmeldungen.

Das HSQL/JAVA-Problem ist mir bekannt. Aber selbst beim Einsatz
älterer JAVA-Versionen ist der Tempogewinn nicht wirklich überzeugend.
Ich bin weiterhin an einer Datenbank interessiert, die sich simpel
handhaben lässt und dabei so flott läuft wie die SQLite. Außerdem
ist die Weitergabe einfach: Ich muss nur nur die ODB und die
SQLite-Datei weitergeben.

Wer also noch einen konkreten Kandidaten kennt...

Gruß,
Michael

Hallo Michael,

zuerst einmal vielen Dank für die bisherigen Rückmeldungen.

Das HSQL/JAVA-Problem ist mir bekannt. Aber selbst beim Einsatz
älterer JAVA-Versionen ist der Tempogewinn nicht wirklich überzeugend.

Das kann ich mir nicht vorstellen. Ich habe hier zum Test eine
Suchfunktion für eine Bibliotheksdatenbank unter HSQLDB gemacht: 8000
Datensätze mit zugegeben nur 11 Spalten. Die Tabelle öffnet unmittelbar,
der letzte Datensatz wird nach Klick auf das entsprechende Symbol sofort
angezeigt. Die Suchfunktion über alle Spalten verläuft auf Knopfdruck
ohne Zeitverzögerung.

Mit jre 6u23 hatte ich hier die ersten deutlichen Probleme. Da hätte ich
bei so einer Tabelle gedacht, dass OpenOffice/LibreOffice abgestürzt
ist. Ich hatte dann Tests mit kleinen Datenbeständen gemacht und da auch
Scrollzeiten von über 1 Minute.

Ich bin weiterhin an einer Datenbank interessiert, die sich simpel
handhaben lässt und dabei so flott läuft wie die SQLite. Außerdem
ist die Weitergabe einfach: Ich muss nur nur die ODB und die
SQLite-Datei weitergeben.

Und so brauchst Du nur die *.odb weiterzugeben. Vielleicht ist ja die
falsche jre noch mit Libre verbunden? Ich habe unter Ubuntu nur im
letzten Jahr einmal eine Vereinsdatenbank mit 500 Datensätzen und über
20 Tabellen zum Vorzeigen laufen - *.odb und ohne Geschwindigkeitsprobleme.

Mein System sonst: OpenSuSE, zur Zeit 11.4

Wer also noch einen konkreten Kandidaten kennt...

Grundlegend ist natürlich eine externe Datenbank von der Datensicherheit
vorzuziehen. Wann Du an die Grenzen der Funktionalität von SQLite stößt
kann ich mangels Erfahrung damit natürlich nicht sagen. Für SchülerInnen
(wie Du erwähnst) ist aber der Aufbau der internen Datenbank besser
nachvollziehbar - mit dem Festlegen von Relationen, dem Verändern von
Tabellen usw.

Gruß

Robert

Hallo Robert,

Hallo Michael,
>
> zuerst einmal vielen Dank für die bisherigen Rückmeldungen.
>
> Das HSQL/JAVA-Problem ist mir bekannt. Aber selbst beim Einsatz
> älterer JAVA-Versionen ist der Tempogewinn nicht wirklich
> überzeugend.

Das kann ich mir nicht vorstellen.

Ich war nur auf die 6u22 zurückgegangen. Nachdem ich nun meine
Zugangsdaten zum Oracle-Archiv (finde ich persönlich eine Frechheit,
dass man sich für den Download anmelden muss) wieder rausgekramt habe,
bin ich noch einen Schritt zurück auf die 6u21 gegangen, Da
flutscht es wieder!

> Ich bin weiterhin an einer Datenbank interessiert, die sich simpel
> handhaben lässt und dabei so flott läuft wie die SQLite. Außerdem
> ist die Weitergabe einfach: Ich muss nur nur die ODB und die
> SQLite-Datei weitergeben.

Und so brauchst Du nur die *.odb weiterzugeben.

Schon klar, aber dass die DB dann im Speicher verbleibt etc. ist auf
Dauer auch nicht so wirklich toll.

Grundlegend ist natürlich eine externe Datenbank von der
Datensicherheit vorzuziehen. Wann Du an die Grenzen der
Funktionalität von SQLite stößt

Das nicht! SQLite ist sehr performant, extrem robust und nur wenige MB
groß. Die wird nicht umsonst von vielen Handy-Herstellern eingesetzt.
Auch Firefox und Thunderbird nutzen das Teil. Es gibt nur eine
Einschränkung (by Design): Man kann keine Spalte aus einer Tabelle
entfernen.

Da ich beim Kopieren einer Tabelle Spalten auslassen und sogar Typen
umdeklarieren kann, ist das noch kein großes Problem. Leider lässt die
Anbindung per ODBC aber auch kein Hinzufügen einer Spalte zu, obwohl
SQLite das kann. Da ich beim Kopieren einer Tabelle keine Spalten
hinzufügen kann, ist das nicht so einfach zu umgehen. Leider komme ich
da derzeit nur mit einem zusätzlichen SQLite-DB-Browser weiter.

Es wäre interessant, welche Einschränkungen Base selber hat, wenn es
Datenbanken geht, die per ODBC angebunden sind... Vielleicht läßt sich
am ODBC-Treiber noch was "feilen".

Gruß,
Michael...

...der erst mal seine Schulung am Montag im Kasten hat :wink: