Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо не използвате varchar(max)?

Моят отговор на това не е за използването на Max, колкото за причината за VARCHAR(max) срещу TEXT.

В моята книга; на първо място, освен ако не можете да сте абсолютно сигурни, че никога няма да кодирате нищо друго освен английски текст и хората няма да се позовават на имена на чужди местоположения, тогава трябва да използвате NVARCHAR или NTEXT.

Второ, това е какво ви позволяват полетата.

TEXT е труден за актуализиране в сравнение с VARCHAR, но получавате предимството на индексирането на пълен текст и много умни неща.

От друга страна, VARCHAR(MAX) има известна неяснота, ако размерът на клетката е <8000 знака, тя ще се третира като данни за ред. Ако е по-голямо, ще се третира като LOB за целите на съхранението. Тъй като не можете да знаете това без да направите заявка RBAR, това може да има стратегии за оптимизация за места, където трябва да сте сигурни за вашите данни и колко четения струват.

В противен случай, ако употребата ви е относително ежедневна и не очаквате да имате проблеми с размера на данните (т.е. използвате .Net и следователно не трябва да се притеснявате за размера на вашите обекти string/char*) тогава използването на VARCHAR(max) е добре.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете последната дата преди стойността на датата в реда

  2. Как да създадете временни таблици в SQL Server чрез MS Access

  3. Добавяне на идентичност към съществуваща колона

  4. Как да предадете дефиниран от потребителя тип таблица към MSSQL заявка от Java

  5. Поправете съобщение 241 „Преобразуването не бе успешно при преобразуване на дата и/или час от низ от знаци“ в SQL Server