# Problem mit der Startenzeit einer HSQLDB



## Gast0815 (31. Mrz 2006)

Hallo,
ich hab mir ein Programm geschrieben das mit einer HSQLDB arbeitet. Ich leg mit dem DatabaseManager der dabei ist ein paar cached tables an und mit dem Programm werden später dann Daten eingefügt. Das funktioniert auch alles.
Je mehr Daten ich aber drin stehen habe (in der größten sind es ca 700.000 Einträge) desto länger dauert es wenn ich die DB später wieder neu starte.
Das kann ja eigentlich nur dran liegen das er die vielen Daten beim Starten jedesmal in den Speicher läd. Ich dachte aber, dass wenn ich die Tabellen als 'CACHED' anlegegt habe, sie nicht in den Speicher geladen werden. 
(Die Datei Dbname.data ist ca 65 mb groß.)


Muss ich beim Starten vielleicht noch irgendeinen Parameter angeben? Ich starte die DB im Moment mit folgendem Kommando:


```
java -Xms1024m -Xmx1024m org.hsqldb.Server -database Dbname
```


Wie kann ich den verhindern das das Starten so lang dauert?


----------



## Caffè Latte (31. Mrz 2006)

Hi,



			
				Gast0815 hat gesagt.:
			
		

> ... Ich dachte aber, dass wenn ich die Tabellen als 'CACHED' anlegegt habe, sie nicht in den Speicher geladen werden.



Was meinst du ist ein Cache? Das ist Speicher, der die Daten temporär zwischenspeichert. Der Cache muss nach dem Starten ja wohl erstmal gefüllt werden. Schau mal hier zum Thema Cache Memory Allocation.

Caffè Latte


----------



## Gast0815 (31. Mrz 2006)

Ich dacht CACHED Tables würden nicht ganz geladen sondern nur ein Teil von Ihnen und über die Werte von hsqldb.cache_scale und hsqldb.cache_size_scale kann ich einstellen wie viel von den Tabellen geladen wird.
So hab ich den Abschnitt den du verlinkt hast zumindest verstanden. Wenn alles von den CACHED Tabellen geladen werden würde gäbe es ja auch keinen Unterschied zur MEMORY Table, oder seh ich das falsch?


----------



## Gast0815 (31. Mrz 2006)

Oder ist der Unterschied nur bei Abfragen relevant?


----------



## Caffè Latte (31. Mrz 2006)

Hi,

ich denke du siehst das schon richtig. Deine 700.000 Einträge werden sicherlich nicht komplett gechached; hängt letztendlich davon ab wieviel Byte sie beanspruchen. Wenn die Datei 65 MB gross ist, ist das ja eigenlich nicht allzuviel.

Setz halt mal die Cache größer runter. Da startet das System sicherlich schneller. Dafür dauern dann u.U. macnhe Anfragen länger. 

Caffè Latte


----------

