externe hsqldb

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: externe hsqldb

Re: externe hsqldb

von F3K Total » Mi, 08.01.2014 18:59

Hi,
es wird den Kohl nicht fett machen, aber du hast drei Spalten doppelt drin:

Code: Alles auswählen

"tblStellenAngebotJahr".*
enthält schon

Code: Alles auswählen

"tblStellenAngebotJahr"."Stellendetail"
und

Code: Alles auswählen

"tblAnsprechpartner".* 
enthält schon

Code: Alles auswählen

"tblAnsprechpartner"."Durchwahl" 
"tblAnsprechpartner"."email"
Läßt du alle Spalten in einem Formular anzeigen, oder sind da Reserve Spalten dabei, die du ggf. noch rauswerfen kannst?
Ich würde mal versuchen, was es bringt alle Fremdschlüssel zu indizieren, also z.B.

Code: Alles auswählen

"tblStellenAngebotJahr"."EinrID"
"tblStellenAngebotJahr"."GruID"
"tblStellenAngebotJahr"."AngebotInKlasseID"
"tblStellenAngebotJahr"."KursAngID"
"tblEinrichtungAdresse"."AnStrID"
usw.
Gruß R

Re: externe hsqldb

von bbberti » Mi, 08.01.2014 18:44

Ich weiß nicht so recht, wie ich meine DB verfremden kann. Aber ich hänge den SQL-Text der Abfrage dran, der ursprünglich durch den Entwurfsmodus in Base entstanden ist. Vielleicht erkennt man was dran (?).

Code: Alles auswählen

SELECT "tblBetreuerIn"."AbkBetr", "tblStellenAngebotJahr".*, "tblHalbJahr"."Halbjahr", "tblGruppeAoderB"."Gruppe", "tblEinrichtungAdresse"."AnStrID", "tblPraxisBereich"."PBAbk", "tblStellenkategorie"."Abkuerzung", "tblStellenkategorie"."SortNr", "tblHimmelsrichtung"."Himmelsrichtung", "tblEinrichtungAdresse"."EinrichtungsName", "tblEinrichtungAdresse"."Strasse", "tblEinrichtungAdresse"."Hausnummer", "tblEinrichtungAdresse"."Ort", "tblEinrichtungAdresse"."Vorwahl", "tblEinrichtungAdresse"."TelefonZentrale", "tblEinrichtungAdresse"."MVV", "tblEinrichtungAdresse"."homepage", "tblEinrichtungAdresse"."BemerkungExtern", "tblAnsprechpartner".*, "tblAnrede"."AnredeKurz", "tblAnsprechpartner"."Durchwahl", "tblAnsprechpartner"."email", "tblStellenAngebotJahr"."Stellendetail", "tblAnsprechpartner"."Funktion", "tblEinrichtungAnspechpartner"."EinrAnspID", "tblSchuelerStellenBelegung"."BelegID", "tblSchuljahr"."Schuljahr", "tblSchuelerinnen"."Nachname", "tblSchuelerinnen"."Vorname", "tblKlasse"."Klasse", "tblKurs"."Kurs", "tblSchuelerinnen"."SchID", "tblEinrichtungAdresse"."BemerkungIntern" FROM "tblStellenAngebotJahr" AS "tblStellenAngebotJahr", "tblEinrichtungAdresse" AS "tblEinrichtungAdresse", "tblGruppeAoderB" AS "tblGruppeAoderB", "tblHalbJahr" AS "tblHalbJahr", "tblAngebotKlasse" AS "tblAngebotKlasse", "tblKursAngebot" AS "tblKursAngebot", "tblAngebotsstruktur" AS "tblAngebotsstruktur", "tblPraxisBereich" AS "tblPraxisBereich", "tblStellenkategorie" AS "tblStellenkategorie", "tblHimmelsrichtung" AS "tblHimmelsrichtung", "tblAnsprechpartner" AS "tblAnsprechpartner", "tblAnrede" AS "tblAnrede", "tblEinrichtungAnspechpartner" AS "tblEinrichtungAnspechpartner", "tblSchuelerStellenBelegung" AS "tblSchuelerStellenBelegung", "tblSchuelerinnen" AS "tblSchuelerinnen", "tblKlasse" AS "tblKlasse", "tblKurs" AS "tblKurs", "tblSchuljahr" AS "tblSchuljahr", "tblBetreuerIn" AS "tblBetreuerIn" WHERE "tblStellenAngebotJahr"."EinrID" = "tblEinrichtungAdresse"."EinrID" AND "tblStellenAngebotJahr"."GruID" = "tblGruppeAoderB"."GruID" AND "tblStellenAngebotJahr"."HJID" = "tblHalbJahr"."HJID" AND "tblStellenAngebotJahr"."AngebotInKlasseID" = "tblAngebotKlasse"."AngebotInKlasseID" AND "tblStellenAngebotJahr"."KursAngID" = "tblKursAngebot"."KursAngID" AND "tblEinrichtungAdresse"."AnStrID" = "tblAngebotsstruktur"."AnStrID" AND "tblEinrichtungAdresse"."BerID" = "tblPraxisBereich"."BerID" AND "tblEinrichtungAdresse"."StellenArtID" = "tblStellenkategorie"."StellenArtID" AND "tblEinrichtungAdresse"."HimmelsrichtungID" = "tblHimmelsrichtung"."HiRiID" AND "tblAnsprechpartner"."AnrID" = "tblAnrede"."AnrID" AND "tblEinrichtungAnspechpartner"."AnspID" = "tblAnsprechpartner"."AnspID" AND "tblEinrichtungAnspechpartner"."EinrID" = "tblEinrichtungAdresse"."EinrID" AND "tblSchuelerStellenBelegung"."StAID" = "tblStellenAngebotJahr"."StAID" AND "tblSchuelerStellenBelegung"."SchID" = "tblSchuelerinnen"."SchID" AND "tblSchuelerinnen"."KlaID" = "tblKlasse"."KlaID" AND "tblSchuelerStellenBelegung"."KuID" = "tblKurs"."KuID" AND "tblSchuelerStellenBelegung"."SchJaID" = "tblSchuljahr"."SchJaID" AND "tblSchuelerinnen"."SchJaID" = "tblSchuljahr"."SchJaID" AND "tblSchuelerStellenBelegung"."BetrID" = "tblBetreuerIn"."BetrID" AND "tblHalbJahr"."Halbjahr" = '1' AND "tblGruppeAoderB"."Gruppe" = 'A' AND "tblSchuljahr"."Schuljahr" = '2013/2014' AND "tblSchuelerinnen"."SchID" <> 0 ORDER BY "tblBetreuerIn"."AbkBetr" ASC, "tblEinrichtungAdresse"."Strasse" ASC, "tblEinrichtungAdresse"."Hausnummer"
Ist schon ein Wahnsinnstext...

Re: externe hsqldb

von F3K Total » Mi, 08.01.2014 18:37

Na ja, oder halt mit den Abfragen als solches, vielleicht sind sie zu verschaltelt?
Wenn du magst, kannst du eine verfremdete Beispieldatei hochladen.
Gruß R

Re: externe hsqldb

von bbberti » Mi, 08.01.2014 18:22

Der SQL-Modus bringt leider keinen Zeitvorteil. Muss mich offensichtlich mit dem Thema "Indices" beschäftigen.

Schon mal Danke
Berti

Re: externe hsqldb

von F3K Total » Mi, 08.01.2014 18:15

Wenn du sie nur sehen willst, also keine beschreibbaren Resultsets brauchst, ist es einen Versuch Wert, denn die Ansichten gehen direkt an die DB, ohne durch AOO interpretiert zu werden. Du kannst zu Testzwecken einfach den direkten SQL-Modus Bild der Abfrage aktivieren, müsste das gleiche sein.
Gruß R

Re: externe hsqldb

von bbberti » Mi, 08.01.2014 18:09

Könnte es helfen, aus Abfragen Ansichten zu machen?

Re: externe hsqldb

von F3K Total » Mi, 08.01.2014 17:52

Hi,
wenn Du auf die .Backup Datei verzichten kannst, hast Du noch die Möglichkeit, von CACHED TABLES auf MEMORY TABLES umzubauen, die sind definitiv schneller. Allerdings auch weniger sicher.
Vermutlich kannst Du durch richtige Wahl der Indizes einiges mehr erreichen.
(Tabellenentwurfsmodus->Extras->Indexentwurf)
Dazu gibt es im HSQL-USER-GUIDE einiges zu lesen.
Gruß R

Re: externe hsqldb

von bbberti » Mi, 08.01.2014 17:45

Hallo,

habe beides ausprobiert, aber keine erkennbare Änderung. Eine Abfrage, die 20 Tabellen einbezieht, dauert 90 sec, bis das Ergebnis ausgespuckt wird. Vorher waren es vielleicht 10 sec.

Grüße
Berti

Re: externe hsqldb

von F3K Total » Mi, 08.01.2014 17:31

Hi,
hast Du mal hin und wieder

Code: Alles auswählen

CHECKPOINT DEFRAG
und

Code: Alles auswählen

SHUTDOWN COMPACT
über Extras/SQL ... ausgeführt?
Das könnte helfen, da die DB so komprimiert und reindiziert wird.
Nach dem

Code: Alles auswählen

SHUTDOWN COMPACT
OpenOffice direkt komplett schliessen und neu starten.

Gruß R

Re: externe hsqldb

von bbberti » Mi, 08.01.2014 17:21

Hallo,

ich hole diesen Thread nochmal hervor. Ich habe allerdings jetzt festgestellt, dass sdie Ausführung komplexere Abfragen als Grundlage meiner Berichte deutlich länger brauchen als vorher in der internen Datenbank. Gibt es da Tipps, wie ich das beschleunigen kann?

Danke schon mal.

Berti

Re: externe hsqldb

von RobertG » Do, 10.10.2013 21:53

Hallo Berthold,
bbberti hat geschrieben: Folgefragen:
1. Sind in den von Dir genannten Dateien auch die Formulare und Berichte gespeichert oder bleiben diese Infos in der .odb-Datei?
2. Was muss ich machen, wenn ich mal eine neuere office-Version nutzen möchte?
1. Die Formulare und berichte haben nichts mit den Daten der Datenbank zu tun. Sie werden in dem *.odb-Container gelagert. Das gleiche gilt für die Abfragen. Die Datenbank enthält nur die Elemente, die Du in der *.odb-Datei unter dem Reiter "Tabellen" sehen kannst - also Tabellen und Ansichten. Außerdem ist in der Datenbank gespeichert, was Du (vielleicht) unter Extras → Beziehungen definiert hast.

2. Du hast doch irgendwie Dein jetziges Office mit dem hsqldb.jar-file verbunden. Vermutlich über Extras → Optionen → Erweitert → Class-Pfad . Diesen Schritt musst Du dann neu machen, wenn Du eine neue Office-Version nimmst, die sich nicht bei den bisherigen Benutzereinstellungen bedient. Ich würde bei jedem Wechsel erst einmal versuchen, weiterhin mit der Datei zu arbeiten. Erst bei einer Fehlermeldung musst Du dann einmal sehen, ob die Java-Einstellungen noch stimmen.

Gruß

Robert

Re: externe hsqldb

von bbberti » Do, 10.10.2013 17:52

Hallo!
hsqldb:file:/C:/Benutzer/R-W-F/SOFA
so kann ich es in der Fußzeile der geöffneten Datenbank lesen. Ich denke, das ist ok.

Da dies vrmutlich die einzige Datenbank in meinem Leben sein wird, mit der ich an diesem Rechner arbeite, dürften die genannten Probleme nicht ausschlaggebend sein.

Folgefragen:
1. Sind in den von Dir genannten Dateien auch die Formulare und Berichte gespeichert oder bleiben diese Infos in der .odb-Datei?
2. Was muss ich machen, wenn ich mal eine neuere office-Version nutzen möchte?

Schöne Grüße
Berthold

Re: externe hsqldb

von RobertG » Do, 10.10.2013 17:20

Hallo Berthold,

das Verzeichnis "database" in Deiner *.odb-Datei kannst Du ruhig bestehen lassen. Das interessiert nicht mehr, denn Du greifst auf die externe Datenbank zu.
Das externe Verzeichnis müsste bei Dir jetzt als
hsqldb:file:/C:/Benutzer/R-W-F/SOFA
in der *.odb-Datei angegeben sein. Wo die *.odb-Datei liegt ist egal.
Das externe Verzeichnis ist das, in dem sich die von mir beschriebenen vorübergehenden Dateien und Verzeichnisse bilden, wenn Du die *.odb-Datei öffnest. Dieses Verzeichnis kannst Du beständig sichern, um ein entsprechendes Backup zu haben.
Du solltest folgendes auf jeden Fall noch wissen: Wenn ich den Thread richtig gelesen habe arbeitest Du mit der HSQLDB 2.2.9. Du kannst also die Daten nicht irgendwann einfach zurück in die interne Datenbank packen, da die Versionen der HSQLDB nicht abwärtskompatibel sind. Du kannst vermutlich auch nicht mit einer anderen internen Datenbank und der gleichen Office-Installation arbeiten, da immer angenommen wird, dass die entsprechende externe HSQLDB diejenige ist, mit der Du arbeitest.

Gruß

Robert

Re: externe hsqldb

von bbberti » Do, 10.10.2013 14:56

Ich hab jetzt nochmal alles umstrukturiert:

Im Pfad: C:/Benutzer/R-W-F/SOFA sind die Dateien SOFA.properties, SOFA.backup, SOFA.data und SOFA.script

im Pfad D:/User/R-W-F ist die Datei SOFA.odb, bei der ich die "database" rausgelöscht habe.

Vielleicht kann mir jemand bestätigen, ob das jetzt so korrekt ist.

Grüße
Berthold

Re: externe hsqldb

von bbberti » Do, 10.10.2013 10:16

Also:

die Dateien .log, properties, backup etc. sind alle da, wenn ich meine SOFA Datenbank mit 7-zip öffne. Die Dateien sind dort unter Database, ohne SOFA vorne dran. Die Datei-Größen sind auch so, dass ich mir vorstellen kann, da ist alles drin. Mich irritiert nur sehr dieser parallele "Benutzer"-Ordner. Ich habe jetzt mit Versuch und Irrtum alles raus gezogen, was möglich war und die Datenbank trotzdem laufen lässt. Es bleiben jetzt nur eine .txt-Datei namens SOFA sowie die Dateien SOFA.properties und SOFA.script. Die kann ich auch rauslöschen, werden nach jedem öffnen der Datenbank aber wieder hineingeschrieben - stört eigentlich nicht.

Es läuft ja auch alles gut und ich denke, ich habe die Struktur so reduziert, dass alles überflüssige weg ist.

Vielleicht kann mir jemand noch jemand einen Tipp mit diesem 2. Benutzer-Ordner geben. Ansonsten schon mal Danke an alle für die Hilfe.

Berthold

Nach oben