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

sql varchar(max) срещу varchar(fix)

MSDN

  • Използвайте varchar, когато размерите на въведените данни в колоната варират значително.
  • Използвайте varchar(max), когато размерите на записите с данни в колоната варират значително и размерът може да надвишава 8000 байта.

Когато дължината е указана при декларирането на VARCHAR променлива или колона, максималната разрешена дължина е 8000 . Ако дължината е по-голяма от8000 , трябва да използвате MAX спецификатор като дължина. Ако дължината е по-голяма от 8000 е посочено, ще бъде открита следната грешка (ако приемем, че указаната дължина е 10000 ):

АКТУАЛИЗАЦИЯ:-Намерих връзка, която бих искал да споделя:-

Тук

Няма голяма разлика в производителността между Varchar[(n)] и Varchar(Max) . Varchar[(n)] предоставя по-добри резултати в сравнение с Varchar(Max) . Ако знаем, че данните, които трябва да се съхраняват в колоната или променливата, са по-малки или равни на 8000 знака, тогава използването на този тип данни Varchar[(n)] осигурява по-добра производителност в сравнение с Varchar(Max). Пример:Когато изпълних следното скрипт чрез промяна на променливата @FirstName въведете Varchar(Max) след това за 1 милион присвоявания последователно отнема двойно време, отколкото когато използвахме тип данни като

Varchar(50) for variable @ FirstName.
DECLARE @FirstName VARCHAR(50), @COUNT INT=0, @StartTime DATETIME = GETDATE()
WHILE(@COUNT < 1000000)
BEGIN
SELECT @FirstName = 'Suraj', @COUNT = @COUNT +1
END
SELECT DATEDIFF(ms,@StartTime,GETDATE()) 'Time Taken in ms'
GO 


  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. JSON_QUERY() срещу JSON_VALUE() в SQL Server:Каква е разликата?

  3. Възстановете множество .bak файлове на SQL Server

  4. Как да сравним, ако два низа съдържат едни и същи думи в T-SQL за SQL Server 2008?

  5. Как да намеря сумата от множество колони в таблица в SQL Server 2005?