Wenn Sie Spalten größer machen, als sie sein müssen, kann das Ihrem Datenbankdesign aktiv schaden. Von BOL:
Eine Tabelle kann maximal 8.060 Bytes pro Zeile enthalten. In SQL Server 2008 ist diese Beschränkung für Tabellen, die Spalten vom Typ varchar, nvarchar, varbinary, sql_variant oder CLR benutzerdefiniert enthalten, gelockert....Das Überschreiten der 8.060-Byte-Zeilengröße kann sich auf die Leistung auswirken, da SQL Server immer noch ein Limit von 8 KB pro Seite beibehält. Wenn eine Kombination von varchar-, nvarchar-, varbinary-, sql_variant- oder CLR-benutzerdefinierten Typspalten diese Grenze überschreitet, verschiebt die SQL Server-Datenbank-Engine die Datensatzspalte mit der größten Breite auf eine andere Seite in der Zuordnungseinheit ROW_OVERFLOW_DATA, während ein 24-Byte-Zeiger auf der ursprünglichen Seite beibehalten wird. Das Verschieben großer Datensätze auf eine andere Seite erfolgt dynamisch, wenn Datensätze aufgrund von Aktualisierungsvorgängen verlängert werden. Aktualisierungsvorgänge, die Datensätze verkürzen, können dazu führen, dass Datensätze zurück auf die ursprüngliche Seite in der Zuordnungseinheit IN_ROW_DATA verschoben werden. Außerdem verlangsamen Abfragen und andere Auswahloperationen wie Sortierungen oder Joins bei großen Datensätzen, die Zeilenüberlaufdaten enthalten, die Verarbeitungszeit, da diese Datensätze synchron statt asynchron verarbeitet werden.
Ich habe die Erfahrung gemacht, dass, wenn man ihnen die zusätzliche Größe gibt, sie sie früher oder später auch nutzen. Wenn Sie außerdem etwas als varchar (64) festlegen, obwohl Sie nur maximal 10 Zeichen benötigen, erhöhen Sie die Wahrscheinlichkeit, dass jemand das Feld für einen anderen als den beabsichtigten Zweck verwendet, und Sie werden feststellen, dass Sie schlechte Daten in diesen Feldern erhalten (z. B. ein Telefonnummernfeld, das Notizen über die zu kontaktierende Sekretärin enthält, um ein nicht ganz zufälliges Beispiel zu wählen).
Aber zumindest ist dieser Entwurf viel besser als alles nvarchar (max) zu machen.
0 Stimmen
Mögliche Duplikate von varchar-Felder - Ist eine Zweierpotenz effizienter? oder dies stackoverflow.com/questions/1374958
0 Stimmen
Gute Funde @gbn, ich schätze, das ist eine Fälschung
0 Stimmen
Ich kann nicht glauben, dass diese Frage mehrere Duplikate hat
0 Stimmen
@Michael: Ich weiß, ich habe nach Base2 gesucht, aber ich denke, ich hätte "Zweierpotenz" verwenden sollen.