# Frage zu Performancetest einer Datenbank



## Postgresler (27. Jun 2007)

Hallo, 


muss für ein Projekt eine DB erstellen. Das hab ich auch soweit getan.. nun bin ich am performancetesten. Die DB sieht momentan so aus: DB - Modell (eine Bibliotheksdatenbank..)

Hab jetzt zB in die Tabelle Werke 15.000 Testdatenreihen insertiert.. ebenfalls in die ISBN-Tabelle wo ISBN-Nr (Strings) sind.

Ein Freund von mir meint, dass es performancetechnisch schneller ist, wenn man die langen ISBN Nummern in ne eigene Tabelle auslagert wegen der Suche etc..

Stimmt das? Was meint ihr? Und wie könnte ich die Tabellen/Datenbank am besten testen um das auch zu beweisen? soll ich die ganze DB testen, oder reicht es, wenn ich nur ein paar Tabellen teste?

danke schon ma mfg


----------



## _tiGGa_ (27. Jun 2007)

moin,
was mir nicht ganz so klar ist ist folgendes:

du hast die relation: ISBN,

dort hast du einen fk auf die relation WERKE,
ok,

jedoch hast du aber in WERKE ein FK auf ISBN ^^

ist doch schwachsinnig ^^

ich würde es gleich so machen,
schmeiß die relation ISBN raus,
und in WERKE nimmst du als PK die ISBN nummer.
da die ISBN ja immer eindeutig ist.

vielleicht könnte man autor aus WERKE noch auslagern,
würde ich der übersichtshalber besser finden.

und zu deiner eigentlichen frage,
nein ^^
es macht keinen unterschied


----------



## Postgresler (27. Jun 2007)

vielen Dank erstmal, meld mich, wenn noch Fragen auftauchen...

aja: schreib grad nen Performancetest unter Java (also Select-Schleifen die ich drüber laufen lasse; - ich werd mal eine Tabelle prüfen wo die ISBN-Nr als Primärschlüssel vergeben wurde; dann erstell ich noch eine wo sie "ausgelagert" ist.. mal schauen ob das wirklich keinen Unterschied macht..


----------



## Yzebär (28. Jun 2007)

Wie schon angesprochen, ist die Tabelle ISBN nicht sinnvoll. In dieser Tabelle werden immer genauso viele Einträg sein, wie in der Werke-Tabelle und wenn an die ISBNNr haben möchte muß man zusätzlich noch ein JOIN machen. Ich schätze, daß dies bei umfangreichen Datenbeständen weniger performant ist (hängt natürlich von der Datenbank ab).

Ich würde auch die ISBNNr nicht als PK verwenden, auch wenn diese eindeutig ist, sondern einen einfachen Index. Die Verwendung von zu großen PKs kann auch inperformant sein.

Vieles hängt natürlich von der verwendeten Datenbank ab.


Noch was anderes, ich würde die Tabelle Ausleihe noch um ein Feld erweitern, aus dem man sehen kann, wie oft ein Benutzer bisher angemahnt wurde, das Buch zurückzugeben.


----------

