TEXT
und VarChar(MAX)
sind nicht-Unicode großer Variable Length Zeichendatentyp, der maximal 2147483647 Non-Unicode-Zeichen speichern kann (d.h. maximale Speicherkapazität ist: 2 GB).
Per MSDN link Microfost schlagen den Text-Datentyp zu vermeiden, mit und es wird in zukünftigen Versionen von SQL Server entfernt. Varchar (Max) ist der vorgeschlagene Datentyp zum Speichern der großen Zeichenfolgenwerte anstelle des Datentyps Text.
- In-Row oder Out-of-Row Lagerung
Daten einer Text
Typ Spalte wird out-of-Zeile in einer separaten LOB Datenseite gespeichert. Die Zeile in der Tabellendatenseite hat nur einen 16-Byte-Zeiger auf die LOB-Datenseite, auf der die tatsächlichen Daten vorhanden sind. Daten einer Varchar(max)
Spalte werden in Reihe gespeichert, wenn sie kleiner oder gleich 8000 Byte ist. Wenn der Varchar (max) -Spaltenwert die 8000 Bytes kreuzt, wird der Varchar (max) -Spaltenwert in separaten LOB-Datenseiten gespeichert und die Zeile hat nur einen 16-Byte-Zeiger auf die LOB-Datenseite, auf der die tatsächlichen Daten vorhanden sind. So In-Row
Varchar (Max) ist gut für Suchen und Abrufen. Typ
- Unterstützt/Nicht unterstützte Funktionalitäten
Einige der String-Funktionen, Operatoren oder die Konstrukte, die nicht auf dem Texttyp Spalte funktioniert, aber sie funktionieren auf varchar (max) Spalte .
=
Gleich-Operator auf VarChar (Max) Typ Spalte
Gruppe durch Klausel auf VarChar (Max) Typ Spalte
Wie wir wissen, sind die VarChar (Max) Typ Spalte Werte Nur wenn die Länge des Werts, der darin gespeichert werden soll, größer als 8000 Byte ist oder nicht genügend Platz in der Zeile ist, wird sie außerhalb der Reihe gespeichert, andernfalls wird sie in Reihe gespeichert.Wenn also die meisten in der VarChar (Max) -Spalte gespeicherten Werte groß sind und außerhalb der Reihe gespeichert werden, ähnelt das Datenwiederherstellungsverhalten fast dem der Spalte Texttyp.
Wenn jedoch die meisten in VarChar (Max) -Typspalten gespeicherten Werte klein genug sind, um in Reihe gespeichert zu werden. Dann erfordert das Abrufen der Daten, bei denen LOB-Spalten nicht enthalten sind, die größere Anzahl von zu lesenden Datenseiten, da der Wert der LOB-Spalte in der gleichen Datenseite gespeichert wird, in der die Nicht-LOB-Spaltenwerte gespeichert sind. Wenn die SELECT-Abfrage jedoch die LOB-Spalte enthält, benötigt sie im Vergleich zu den Spalten vom Typ Text weniger Seiten zum Lesen.
Fazit
Verwenden VarChar(MAX)
Datentyp statt TEXT
für eine gute Leistung.
Source
Dieser Beitrag ist auch hilfreich: http://stackoverflow.com/questions/564755/sql-server-text-type-vs-varchar-data-type – Jake
Die wichtigste Erwähnung in diesem Beitrag ist ein Link zu [MSDN Dokumentation] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) zeigt, dass 'TEXT' und' NTEXT' (und 'IMAGE') veraltet sind. – Brian
Schauen Sie sich den Link an: http://StackOverflow.com/Q/28980502/1805776 – vicky