TEXT
et VarChar(MAX)
sont non-Unicode grand caractère de longueur variable type de données, qui peut stocker un maximum de 2147483647 caractères non Unicode (à savoir la capacité de stockage maximale est: 2 Go).
Comme par MSDN link Microfost est ce qui suggère d'éviter d'utiliser le type de données texte et seront supprimées dans une version future de Sql Server. Varchar (Max) est le type de données suggéré pour stocker les grandes valeurs de chaîne au lieu du type de données Texte.
- En-ligne ou le stockage hors-ligne
données d'une colonne de type Text
est stockée hors ligne dans une pages de données LOB séparées. La ligne de la page de données du tableau ne comportera qu'un pointeur de 16 octets vers la page de données LOB où les données réelles sont présentes. Alors que les données d'une colonne de type Varchar(max)
sont stockées dans la ligne si elles sont inférieures ou égales à 8000 octets. Si la valeur de la colonne Varchar (max) croise les 8000 octets, la valeur de la colonne Varchar (max) est stockée dans des pages de données LOB séparées et la ligne ne comportera qu'un pointeur de 16 octets vers la page de données LOB où les données réelles sont présentes. Donc In-Row
Varchar (Max) est bon pour les recherches et la récupération.
- pris en charge/Fonctionnalités non prises en charge
Certaines des fonctions de chaîne, les opérateurs ou les constructions qui ne fonctionne pas sur la colonne de type texte, mais ils travaillent sur VarChar (Max) Type de colonne .
=
égal à l'opérateur sur VarChar (Max) de type colonne
groupe par clause sur VarChar (Max) de type colonne
- système IO Considérations
Comme nous savons que les valeurs de colonne de type VarChar (Max) sont stocké hors ligne uniquement si la longueur de la valeur à stocker est supérieure à 8000 octets ou s'il n'y a pas assez d'espace dans la ligne, sinon il le stockera dans la ligne.Ainsi, si la plupart des valeurs stockées dans la colonne VarChar (Max) sont grandes et stockées hors ligne, le comportement de récupération de données sera presque similaire à celui de la colonne Type de texte. Mais si la plupart des valeurs stockées dans les colonnes de type VarChar (Max) sont suffisamment petites pour être stockées dans la rangée. Ensuite, la récupération des données où les colonnes LOB ne sont pas incluses nécessite le nombre de pages de données à lire lorsque la valeur de la colonne LOB est stockée dans la même page de données où les valeurs de colonne non-LOB sont stockées. Mais si la requête de sélection inclut une colonne LOB, elle nécessite moins de pages à lire pour la récupération de données par rapport aux colonnes de type Texte.
Conclusion
Utilisez VarChar(MAX)
type de données plutôt que TEXT
pour une bonne performance.
Source
Ce poste est également utile: http://stackoverflow.com/questions/564755/sql-server-text-type-vs-varchar-data-type – Jake
La mention la plus importante dans ce poste est un lien vers [documentation MSDN] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) montrant que 'TEXT' et' NTEXT' (et 'IMAGE') sont obsolètes. – Brian
Regardez le lien: http://stackoverflow.com/q/28980502/1805776 – vicky