# HSQLDB Files



## Gast100 (21. Feb 2008)

Hallo,

kann mir evtl. jemand darüber Auskunft geben, welche Files (ich nutze eine HSQLDB mittels "...hsqldb:file...") wofür sind und welche Daten beinhalten?

Ist es richtig, dass die Daten nach dem Shutdown lediglich in Form von SQL Statements in der *.script stehen und nicht als Binärdaten irgendwo abgelegt sind?
Das würde ja bedeuten, dass beim Start der Anwendung zunächst einmal sämtliche Statements ausgeführt werden und in den Cache??? geladen werden. Wird das Ganze dann bei größeren Datenmengen nicht recht schnell sehr langsam (zumindest beim Starten der Anwendung)?

Freue mich schon auf eure Antworten...

Danke


----------



## The_S (22. Feb 2008)

Gast100 hat gesagt.:
			
		

> kann mir evtl. jemand darüber Auskunft geben, welche Files (ich nutze eine HSQLDB mittels "...hsqldb:file...") wofür sind und welche Daten beinhalten?



Ja



			
				Gast100 hat gesagt.:
			
		

> Ist es richtig, dass die Daten nach dem Shutdown lediglich in Form von SQL Statements in der *.script stehen und nicht als Binärdaten irgendwo abgelegt sind?



Ja



			
				Gast100 hat gesagt.:
			
		

> Das würde ja bedeuten, dass beim Start der Anwendung zunächst einmal sämtliche Statements ausgeführt werden und in den Cache??? geladen werden. Wird das Ganze dann bei größeren Datenmengen nicht recht schnell sehr langsam (zumindest beim Starten der Anwendung)?



Ob jetzt DB2, Access, HSQLDB ... die Daten müssen immer irgendwo abgespeichert und wieder geladen werden. In welcher Form das jetzt ist, ist ja eigentlich egal. Ich habs zwar noch nicht ausprobiert, aber ich glaube nicht, dass eine HSQLDB mit der gleichen Mengen an Daten bedeutend langsamer als andere sind  .


----------



## robertpic71 (22. Feb 2008)

Kleiner Nachtrag:
Per Default arbeitet HSQL mit Memorytabellen. D.h. beim Laden in den Speicher und beim SHUTDOWN auf die Platte. Wenn man nicht will, muss man die Tabelle mit CREATE CACHED TABLE anlegen.

Verglichen mit anderen Datenbanken sind da Start/Endezeiten länger (es muss auch in den Speicher passen) die Zugriffe gehen dann wesentlich schneller. Wenn das System verstirbt sind schon mal die Daten weg.

Ich habe mich aber nur kurz mit HSQLDB beschäftigt ich verwende eigentlich den Nachfolger(*) H2.

/Robert

(*) Soweit ich das durchblicke liegen die Rechte bzw. die Wartung HSQLDB nicht mehr beim Entwickler (Thomas Müller). Dieser hat mit H2 was eine neue Datenbank angefangen.


----------



## Gast100 (23. Feb 2008)

> Wenn das System verstirbt sind schon mal die Daten weg.



Was kann man dagegen tun? Nur mit Cached Tables arbeiten?
Sind beim Versterben wirklich alle Daten weg, oder nur die Änderungen während der laufzeit des Programms?


----------



## robertpic71 (24. Feb 2008)

Gast100 hat gesagt.:
			
		

> Sind beim Versterben wirklich alle Daten weg, oder nur die Änderungen während der laufzeit des Programms?



Nur die Daten der Laufzeit (Haupspeicher). 

Ob Cached Tables reichen - weiß ich auch nicht. Im Zweifelsfall Doku oder testen. Ich habe HSQLDB nur kurz angetestet (und dann H2 verwendet).

/Robert


----------



## The_S (25. Feb 2008)

robertpic71 hat gesagt.:
			
		

> Wenn das System verstirbt sind schon mal die Daten weg.



Halt ich für n Gerücht. Die Änderungen an den Memory-Tables werden in eine log-Datei geschrieben. D. h. wenn das Programm nicht unmittelbar nach einer Änderung abstürzt, sind trotzdem noch alle Änderungen beim Neustart vorhanden. Und wenn es unmittelbar nach einer Änderung abstürzt, dann ist lediglich die letzte Änderung mit etwas Pech nicht mehr vorhanden.


----------

