Hallo liebe Datenbank-Pro`s,
werden in einer MS-SQL-Datenbank für leere Werte Speicherplatz reserviert und auch verbraucht oder nur verbraucht wenn auch ein Inhalt eingesetzt wurde?
Bin am überlegen eine Datentabelle mit den folgenden Musterdaten aufzuteilen auf eine Tabelle und mehrere Unter-Tabellen die eine Referenz zu ersten Tabelle haben.
Nachteil die Abfrage wird aufwendiger, würde sich nicht lohnen, wenn leere Daten keinen Speicherplatz verbrauchen.
Sollten die Speicherplatz verbrauchen würde sich eine Aufteilung evtl. lohnen?
So würden die Daten z.B. aussehen. Die DateTime benötige ich aber nur bei jeder 10 Eintragung. Somit würde ich neun mal Platz verbrauchen ohne diesen überhaupt zu benötigen.
ID
3 x String
2 x Int32
4 x DateTime
2 x Bool
Beispiel aufgeteilt
Master:
ID
3 x String
2 x Int 32
2 x Boll
Slave:
ID
Slave_Master_IdRef
4 x DateTime
Ab wie viel Datensätzen würdet Ihre eine Aufteilung vornehmen?
Hoffe ich bekomme von euch guten Input.
Vielen Dank im Voraus
Gruß
ck
Gar nicht, ich würde die Tabellen so aufbauen, dass man die Inhalte optimal abfragen kann. Wayne Speicherplatz..
Warum verwendest Du keine 10 Sekunden Google?
Do empty columns take up space in a table?
Ab wie viel Datensätzen würdet Ihre eine Aufteilung vornehmen?
Man normaliert nach Struktur, nicht nach Menge.
Normalisierung (Datenbank)
Davon abgesehen sprechen wir hier sehr wahrscheinlich von Microoptimierungen, mit denen Du Dir bei so einem Vorhaben wahrscheinlich mehr Nachteile als Vorteile einfangen wirst.
Dazu passend aus dem verlinkten Thread: The overhead is minimal and optimisation will be premature.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Vielen Dank für eure Antworten und die Unterstützung.
Werde keine Aufteilung vornehmen.
Euch ein schönes WE.
Gruß
ck