Performancefrage

airchanjo

New Member
Hi,

ich komme aus mysql in Verbindung mit Webanwendungen. Jetzt wurde ich in die SQL-Server-Welt geworfen mit deutlich größeren DBs, als ich sie bisher verwendet habe.

Unsere Reporting DB ist inzwischen auf 35 Mio Datensätze angewachsen und die Abfragen dauern.

Ich habe die DB gerade aus drei alten zusammengebaut, tote Schlüssel rausgeschmissen, Teilinformationen in Fremdtabellen ausgelagert und untereinander mit Fremdschlüsseln verbunden. Soweit so gut. Der SQL-Server bastelt wohl von selbst einen Index über das Ganze.

Kann mir jemand ein paar allgemeine Optimierungstipps geben?

Um was ich mich auf Grund der bisher relativ kleinen Datensatzanzahl nie gekümmert habe, ist zum Beispiel die Art, wie der SQL-Server die Tabelle liest. Ist es besser zum Beispiel Werte, die den selben Zeitstempel besitzen in eine Zeile zu schreiben oder für jeden Wert eine neue Zeile zu erzeugen?

Wann ist er schneller durch eine Tabelle. Bei mehreren Spalten und weniger Zeilen oder weniger Spalten und mehr Zeilen?

Hat da jemand ein paar gute Ratschläge für mich?

Danke airchanjo
 
3. Normalform

hab ich doch schon... :D.

Soweit ist das ja klar. Das meinte ich mit "Auslagerung" und "über Fremdschlüssel verbunden".

Bin nur nicht auf den Begriff gekommen.

Werd heute mal die 4. NF probieren. Mal testen, ob ich dass hier anwenden kann.

Gruß airchanjo
 
In der Praxis neigt man übrigens dazu, das Datenbankschema aus Performancegründen eher zu denormalisieren. Mehr als die 3NF wirst du eher selten antreffen. Die "höheren" bzw. "reineren" Normalformen sind eher akademisch interessant.
 
Roger Wilco, dass du in der Praxis an der 1. NF rüttelst, wage ich zu bezweifeln. ;)
Natürlich kann es Ausnahmen geben, aber mit einer von Grund auf vollständig denormalisierten Datenbank möchte wohl niemand gern arbeiten. :)
 
Back
Top