3 Stimmen

Bestes Datentyp für SQL-Tabelle mit vielen langen Textfeldern

Ich habe die folgende Tabelle in einer SQL Server 2008-Datenbank mit vielen langen varchar-Feldern für Textbeschreibungen. Ich möchte wissen, welcher Datentyp am besten für diese verwendet werden soll. Derzeit verwende ich varchar mit einer Grenze von 2000 Zeichen, aber dies könnte Probleme verursachen, wenn Personen mehr Text hinzufügen müssen. Gibt es ein Problem, TEXT mehr als einmal in einer Tabelle zu verwenden? Was schlagen Sie vor?

Tabelle
 Name varchar(250)
 Beschreibung1 varchar(2000)
 Beschreibung2 varchar(2000)
 Beschreibung3 varchar(2000)
 Beschreibung4 varchar(2000)
 Beschreibung5 varchar(2000)

4voto

Peter Schofield Punkte 939

Für SQL Server 2008 glaube ich, dass die empfohlene Praxis ist, varchar(max) zu verwenden, anstelle von text - text soll meines Wissens nach in einer zukünftigen SQL Server-Version veraltet sein.

Ihr Tabellenentwurf scheint für mich solide genug zu sein, aber ich vermute, dass einige vorschlagen werden, dass wenn die Spalten bis zum Maximum gefüllt sind - und die Anzahl der Tabellenzeilen groß ist - es möglicherweise Leistungsprobleme geben könnte. SQL Server kann nur 8K pro Datenbankseite speichern, also müsste es Ihre Tabelle aufteilen - was sich auf die Leistung auswirkt.

1voto

Dave Markle Punkte 91733

Nach meiner Meinung gibt es ein Problem beim Verwenden von TEXT überhaupt - es ist veraltet!

Verwenden Sie stattdessen VARCHAR(MAX) anstelle von VARCHAR(2000) - damit erhalten Sie die gesamte Größe einer TEXT-Spalte und Sie können sie genauso wie eine VARCHAR(...)-Spalte manipulieren.

1voto

GalacticCowboy Punkte 11505

Ein weiterer Vorteil der Verwendung von varchar(MAX) ist, dass die Felder nicht gegen Ihre maximale Zeilengröße von 8K gezählt werden - da jedes dieser Felder bereits größer als 8K sein kann, speichert SQL sie außerhalb der Datenseite, sobald es erforderlich ist, sodass auf der Seite nur der Zeiger auf die Daten gespeichert wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X