ab welcher Feldgroesse wechsel von char() nach varchar() sinnvoll

22/07/2009 - 08:11 von Helmut Ascheid | Report spam
Hallo in die Runde,

für mich stellt sich eine generelle Frage bezüglich der Performance einer
Tabelle.
Ab welcher Feldgröße ist es sinnvoll von char() nach varchar() bzw. von
nchar() nach nvarchar() zu wechseln.

Im Managment Studio sind als Defaultwerte varchar(50) bzw nvarchar(50)
eingetragen, ist dies der Schwellenwert ab dem es sinnvoll wird?

z.B. eine Tabelle mit
50% = 3-stelligen,
20% = 1 bis 2-stelligen und
30% = 5 bis 50-stelligen Eintràgen

was ist effektiver varchar(50) oder var(50) ?

Grüße
Helmut
 

Lesen sie die antworten

#1 Elmar Boye
22/07/2009 - 10:33 | Warnen spam
Hallo Helmut,

Helmut Ascheid schrieb:
für mich stellt sich eine generelle Frage bezüglich der Performance einer
Tabelle.



Vorab: Für die "Performance" spielt das am allerwenigsten eine Rolle.

Ab welcher Feldgröße ist es sinnvoll von char() nach varchar() bzw. von
nchar() nach nvarchar() zu wechseln.



Sobald die Lànge der gespeicherten Zeichenketten deutlich variiert.
CHAR und NCHAR sind nur für Spalten sinnvoll, die in der Regel
vollstàndig gefüllt werden.

Der wesentlich Unterschied ist bei CHAR/NCHAR, dass der Speicherplatz
dort fest reserviert wird, wodurch bei früheren Versionen die max.
Speichergröße von 8060 Zeichen je Zeile schneller erreicht wird.

Mit SQL Server 2008 ist das zwar gelockert worden, gilt aber nur
für variable Zeichenketten:
<URL:http://msdn.microsoft.com/de-de/lib...1.aspx>
"Zeilenüberlauf bei Daten über 8 KB"

Siehe auch die Berechnung der Speicherbelegung:
<URL:http://msdn.microsoft.com/de-de/lib...5.aspx>

Im Managment Studio sind als Defaultwerte varchar(50) bzw nvarchar(50)
eingetragen, ist dies der Schwellenwert ab dem es sinnvoll wird?



Das ist nur eine Vorgabe für eine normales Textfeld.
Früher gaben die Tools da nur 10 Zeichen an, und andere Umgebungen
kennen andere Werte, eine Schwellenwert ist das nicht.

z.B. eine Tabelle mit



Du meinst vermutlich Spalte...
50% = 3-stelligen,
20% = 1 bis 2-stelligen und
30% = 5 bis 50-stelligen Eintràgen

was ist effektiver varchar(50) oder var(50) ?



... VARCHAR.
Grundregel wàre: Im Zweifelsfall immer variable Zeichenketten.

Und im Zeitalter der Globalisierung sollte man ebenfalls erwàgen
durchgàngig mit Unicode zu arbeiten, wenn man eine neue Datenbank
entwirft.

Gruß Elmar

Ähnliche fragen