# HSQLDB Performance bei erstem Zugriff



## Audio Anarchy (15. Mai 2008)

Hallo Freunde,

ich starte die HSQLDB folgendermaßen:


```
String[] options = new String[] { "-database.0", "hsqldb/datenbank",
				"-dbname.0", "datenbank"};
            Server.main(options);
```

Ich verwende zudem Hibernate mit JPA als Persistenzmanager. Mein erster Datenbankzugriff dauert 
3-4 Sekunden. Alle weiteren zugriffe gehen pfeilschnell. Woran kann das liegen? Danke für Eure Hilfe


----------



## byte (15. Mai 2008)

Schwer zu sagen, ohne den Code zu kennen. Es dauert aber i.d.R. einen Moment, bis Hibernate initialisiert ist, was man alleine schon daran erahnen kann, wenn man guckt, wieviele Jars man integrieren muss.


----------



## ms (16. Mai 2008)

Wird die Datenbank jedesmal beim Starten neu initialisiert?

ms


----------



## Guest (16. Mai 2008)

Also die Datenbank wird beim Neustart nicht initialisiert bzw. das Tabellenschema wird nicht neu generiert und mit der Tabelle passiert sonst auch nix. 

Ich hab mir auch schon überlegt ob es an Hibernate liegen könnte.  Meine Idee wäre beim Start der Datenbank einen Dummyzugriff auf die Datnbank zu starten. Aber eine saubere Lösung ist das ja auch nicht.


----------



## ms (16. Mai 2008)

Wieviel gemappte Objekte/Tabellen sind es denn?

ms


----------



## Guest (18. Mai 2008)

ms hat gesagt.:
			
		

> Wieviel gemappte Objekte/Tabellen sind es denn?
> 
> ms



nur eine


----------



## robertpic71 (19. Mai 2008)

Also bei mir dauert die erste Verwendung von Hibernate auch immer ein paar Sekunden - egal ob ich mit H2, PostgreSQL oder DB2 arbeite - bei einer Datei sollte sich das aber in Grenzen halten.

Wie groß ist deine Datenbank? HSQLDB hat archtikturbedingt längere Startzeiten. Die Datenbank steht in SQL-Befehlsform auf der Platte un wird beim Starten in den geladen. 

Um die reine Datenbankzeit zu messen, müsstest du wohl die Startzeit von einer JDBC-Verbindung vergleichen.

/Robert


----------

