Was sind gute Größen für Datentypen in SQL Server? Wenn ich Spalten definiere, sehe ich Datentypen mit einer Größe von 50 als eine der Standardgrößen (zB: nvarchar (50), binary (50)). Was ist die Bedeutung von 50? Ich bin versucht, Größen von 2 zu verwenden, ist das besser oder einfach nutzlos?
Update 1 Alles klar, danke für eure Beiträge. Ich wollte nur wissen, wie man die Größe eines Datentyps für eine Spalte am besten definiert.
Der Grund dafür, dass so viele Felder eine Länge von 50 haben, ist, dass SQL Server standardmäßig 50 als Länge für die meisten Datentypen verwendet, bei denen die Länge ein Problem darstellt.
Wie schon gesagt, sollte die Länge eines Feldes den Daten entsprechen, die dort gespeichert werden, nicht zuletzt, weil die Länge eines einzelnen Datensatzes in SQL Server begrenzt ist (es sind ~ 8000 Bytes). Es ist möglich, über diese Grenze hinaus zu blasen.
Auch die Länge Ihrer Felder kann als Teil Ihrer Dokumentation angesehen werden. Ich weiß nicht, wie oft ich faule Programmierer getroffen habe, die behaupten, dass sie nicht dokumentieren müssen, weil der Code selbstdokumentiert und dann nicht die Dinge tut, die den Code selbst dokumentieren würden. p>
Es gibt keinen Grund, Potenzen von 2 für die Performance usw. zu verwenden. Die Datenlänge sollte durch die Größe der gespeicherten Daten bestimmt werden.
Warum nicht die traditionellen Potenzen von 2, minus 1 wie 255 ...
Im Ernst, die Länge sollte Ihren Anforderungen entsprechen und für Ihre Daten geeignet sein.
Nichts anderes: Wie der Client es benutzt, richtet sich an 32-Bit-Wortgrenzen, Potenzen von 2, Geburtstage, Skorpion steigt in Uranus, würfelt ...
Sie werden nichts gewinnen, wenn Sie Potenzen von 2 verwenden. Machen Sie die Felder so lange, wie es Ihre Geschäftsanforderungen wirklich erfordern - überlassen Sie SQL Server den Rest.
Da die SQL Server-Seitengröße auf 8 KB begrenzt ist (davon sind 8060 Byte für Benutzerdaten verfügbar), wird die Anzahl der Strings mit variabler Länge so klein wie möglich gehalten (aber so lange wie erforderlich, aus Anforderungssicht) Plus.
Dieses Limit von 8 KB ist eine feste SQL Server-Systemeinstellung, die nicht geändert werden kann.
Natürlich kann SQL Server heutzutage mehr als 8K Daten in einer Zeile verarbeiten, indem er sogenannte "Überlauf" -Seiten verwendet - aber es ist weniger effizient, also ist es generell eine gute Idee, innerhalb von 8K zu bleiben.
Marc
Das hängt ganz davon ab, was Sie speichern. Wenn Sie x Zeichen benötigen, verwenden Sie x nicht einen beliebig vordefinierten Betrag.
Es ist eine gute Idee, dass die ganze Reihe mehrmals in die Seite passt, ohne zu viel freien Platz zu lassen.
Eine Zeile kann nicht zwei Seiten umfassen, eine Seite hat 8096
bytes freien Speicherplatz, so dass zwei Zeilen, die 4049
bytes belegen, jeweils zwei Seiten belegen.
Siehe Dokumente zur Berechnung des von einer Person belegten Speicherplatzes Reihe.
Beachten Sie auch, dass VAR
in VARCHAR
und VARBINARY
für "variierend" steht. Wenn Sie also einen 1
-Byte-Wert in eine 50
-Byte-Spalte eingeben, dauert es aber 1
Byte.
Tags und Links sql-server database types