Geschwindigkeit - Mehrere Felder in einer Tabelle oder Splitten

tScheckSn

Neuer Benutzer
Beiträge
4
Hallo,

Ich möchte in einer MSSQL Server Tabelle Einstellungen für ein Programm Speichern. Diese Einstellungen können vorerst vom Typ Text, varchar(255), und int sein, es ist aber möglich, dass später noch andere Datentypen dazu kommen.
Dafür möchte ich eine Tabelle erstellen, die Weis, von welchem Typ die einstellung ist.
In einer oder mehreren Tabellen, das ist jetzt meine frage sollen die Werte abgelegt werden.

Variante 1:

Tabelle "Settings":
PID (int) | Name (varchar 255) | Typ (int)

Tabelle "WerteZuSettings":
SettingsID (int -> bezug auf Settings.PID) | WertInt (int) | WertVarchar (varchar255) | WertText (text)|



Variante2:

Tabelle "Settings":
PID (int) | Name (varchar 255) | Typ (int)

Tabelle" WerteZuSettingsInt":
SettingsID (int -> bezug auf Settings.PID) | Wert(int)


Tabelle" WerteZuSettingsVarchar":
SettingsID (int -> bezug auf Settings.PID) | Wert(varchar)


Tabelle" WerteZuSettingsText":
SettingsID (int -> bezug auf Settings.PID) | Wert(Text)


Meine Frage: Bringt Variante 2 einen geschwindigkeitsvorteil?
Das select würde je nach typ anders aussehen und nur z.b. das Feld WertInt abfragen.

Schon Danke im Voraus
Liebe Grüße
 
Werbung:
Meine Frage: Bringt Variante 2 einen geschwindigkeitsvorteil?
Von wie vielen Millionen Einstellungen sprechen wir? Ohne EXPLAIN kann ich nur in die Glaskugel schauen. Allerdings bezweifle ich, dass es einen nennenswerten Geschwindigkeitsunterschied geben wird.

Daneben stellt sich dann noch die Frage ob du die Einstellungen wirklich in der Datenbank speichern solltest. Am effizientesten und damit auch am schnellsten dürften Dateien sein. Je nach Programmiersprache und entsprechender Unterstützung bieten sich ini und xml an. Davon abgesehen vermeidest du dadurch eine Abhängigkeit zum Datenbankserver. Ist der offline sind auch die Einstellungen nicht verfügbar.

Wenn du dafür wirklich SQL benötigst, bist du möglicherweise mit SQLite besser bedient.

Gruß
Hony
 
Variante 2 spart etwas Speicherplatz, Variante 1 ist etwas einfacher zu handhaben, verstößt aber ggf. gegen die Normalform. Die Geschwindigkeit sollte gleich sein.
 
Werbung:
Zurück
Oben