какое преимущество TEXT имеет перед varchar, когда требуемая длина <8000? - PullRequest
1 голос
/ 15 августа 2011

Текстовый тип SQL Server и тип данных varchar :

Как правило, если вам когда-либо понадобится, чтобы текстовое значение превышало 200 символов И не использовалось соединениев этом столбце используйте TEXT.

В противном случае используйте VARCHAR.

Предполагая, что мои данные теперь 4000 символов И я не использую соединение в этом столбце.По этой цитате выгоднее использовать TEXT / varchar (max) по сравнению с использованием varchar (4000).

Почему так?(какое преимущество имеет TEXT / varchar (max) перед обычным varchar в этом случае?)

Ответы [ 3 ]

4 голосов
/ 15 августа 2011

TEXT устарел, используйте nvarchar(max), varchar(max) и varbinary(max) вместо: http://msdn.microsoft.com/en-us/library/ms187993.aspx

2 голосов
/ 15 августа 2011

Я не согласен с вещью 200, потому что она не объяснена, если только она не относится к устаревшей опции «текст в строке»

  • Если ваши данные содержат 4000 символов, используйте char (4000). Фиксированная длина
  • Текст устарел
  • Типы BLOB медленнее
0 голосов
/ 15 августа 2011

В старых версиях SQL (2000 и более ранних?) Максимальная длина строки составляла 8 КБ (или 8060 байт).Если вы используете varchar для большого количества длинных текстовых столбцов, они будут включены в эту длину, тогда как любые текстовые столбцы - нет, поэтому вы можете хранить больше текста в строке.

Эта проблема решалась в более поздних версиях SQL.

Эта страница MSDN включает в себя инструкцию:

SQL Server 2005поддерживает хранилище с переполнением строк, что позволяет перемещать столбцы переменной длины вне строки.В основной записи хранится только 24-байтовый корень для столбцов переменной длины, выдвинутых из строки;из-за этого эффективный предел строки выше, чем в предыдущих выпусках SQL Server.Дополнительные сведения см. В разделе «Переполнение строки, превышающее 8 КБ» в электронной документации по SQL Server 2005.

...