SQL Server 텍스트 유형 대 VARCHAR 데이터 유형 [폐쇄
-
05-09-2019 - |
문제
가변 길이 문자 데이터가 있으며 SQL Server (2005) 데이터베이스에 저장하려고합니다. 텍스트 SQL 유형을 선택하는 방법에 대한 모범 사례를 배우거나 Varchar SQL 유형, 성능/발자국/기능의 장단점을 선택하고 싶습니다.
해결책
SQL Server 2005 이상을 사용하는 경우 사용하십시오. varchar(MAX)
. 그만큼 text
데이터 유형은 더 이상 사용되지 않으며 새로운 개발 작업에 사용해서는 안됩니다. 에서 문서:
중요한
ntext
,text
, 그리고image
미래 버전의 Microsoft SQL Server에서 데이터 유형이 제거됩니다. 새로운 개발 작업에서 이러한 데이터 유형을 사용하지 말고 현재 사용하는 응용 프로그램을 수정할 계획입니다. 사용 Nvarchar (Max), varchar (max), 그리고 varbinary (max) 대신에.
다른 팁
TEXT
큰 문자열 데이터에 사용됩니다. 필드의 길이가 특정 임계 값을 발표하면 텍스트가 줄 밖으로 저장됩니다.
VARCHAR
항상 줄에 저장되며 한계가 있습니다. 8000 캐릭터. 당신이 만들려고한다면 VARCHAR(x)
, 어디 x> 8000, 오류가 발생합니다.
서버 : MSG 131, 레벨 15, 상태 3, 라인 1
'varchar'유형에 주어진 크기 ()는 모든 데이터 유형 (8000)에 허용되는 최대 값을 초과합니다.
이러한 길이 제한은 우려되지 않습니다 VARCHAR(MAX)
안에 SQL Server 2005, 그것은 행으로 저장 될 수 있습니다. TEXT
.
주목하십시오 MAX
여기서 일종의 일정이 아닙니다. VARCHAR
그리고 VARCHAR(MAX)
매우 다른 유형이며 후자는 매우 가깝습니다. TEXT
.
이전 버전에서 SQL 서버 당신은 액세스 할 수 없습니다 TEXT
직접, 당신은만을 얻을 수 있습니다 TEXTPTR
그리고 그것을 사용하십시오 READTEXT
그리고 WRITETEXT
기능.
~ 안에 SQL Server 2005 직접 액세스 할 수 있습니다 TEXT
열 (여전히 명시적인 캐스트가 필요하지만 VARCHAR
그들에게 값을 할당하려면).
TEXT
좋다 :
- 데이터베이스에 큰 텍스트를 저장 해야하는 경우
- 열의 값을 검색하지 않은 경우
- 이 열을 거의 선택하지 않고 결합하지 않는 경우.
VARCHAR
좋다 :
- 작은 줄을 저장하는 경우
- 문자열 값을 검색하는 경우
- 항상 선택하거나 조인으로 사용하는 경우.
에 의해 선택 여기서는 열의 값을 반환하는 쿼리를 발행한다는 의미입니다.
에 의해 수색 여기서는 결과가 TEXT
또는 VARCHAR
열. 여기에는 어떤 사용을 사용하는 것이 포함됩니다 JOIN
또는 WHERE
상태.
로서 TEXT
줄 밖으로 저장되며 쿼리는 TEXT
열은 일반적으로 더 빠릅니다.
무엇의 예 TEXT
좋은 것 :
- 블로그 댓글
- 위키 페이지
- 코드 소스
무엇의 예 VARCHAR
좋은 것 :
- 사용자 이름
- 페이지 제목
- 파일 이름
경험상, 당신이 필요하다면 텍스트 가치를 초과 할 필요가 있다면 200 캐릭터 그리고 이 열에 가입을 사용하지 마십시오 TEXT
.
그렇지 않으면 사용하십시오 VARCHAR
.
추신 동일하게 적용됩니다 UNICODE
활성화 NTEXT
그리고 NVARCHAR
또한 위의 예제에 사용해야합니다.
pps 동일하게 적용됩니다 VARCHAR(MAX)
그리고 NVARCHAR(MAX)
저것 SQL Server 2005+ 대신 사용합니다 TEXT
그리고 NTEXT
. 활성화해야합니다 large value types out of row
그들과 함께 sp_tableoption
원한다면 항상 줄 밖으로 저장되기를 원한다면.
위에서 언급했듯이 여기, TEXT
향후 릴리스에서 더 이상 사용되지 않을 것입니다.
그만큼
text in row
옵션은 향후 버전에서 제거됩니다 SQL 서버. 새로운 개발 작업 에서이 옵션을 사용하지 않고 현재 사용중인 응용 프로그램을 수정할 계획입니다.text in row
. 사용하여 큰 데이터를 저장하는 것이 좋습니다.varchar(max)
,nvarchar(max)
, 또는varbinary(max)
데이터 유형. 이러한 데이터 유형의 인랑 및 외부 동작을 제어하려면large value types out of row
옵션.
SQL Server 2005에서 새로운 데이터 유형이 소개되었습니다. varchar(max)
그리고 nvarchar(max)
그들은 이전 텍스트 유형의 장점을 가지고 있습니다. 2GB의 데이터를 포함 할 수 있지만 대부분의 장점도 있습니다. varchar
그리고 nvarchar
. 이러한 장점 중에는 substring ()과 같은 문자열 조작 함수를 사용하는 기능이 있습니다.
또한 Varchar (Max)는 테이블 (디스크/메모리) 공간에 저장되고 크기는 8kb 미만입니다. 더 많은 데이터를 현장에 배치 할 때만 테이블의 공간에서 저장됩니다. 테이블의 공간에 저장된 데이터는 (보통) 더 빨리 검색됩니다.
요컨대, 더 나은 대안이 있기 때문에 텍스트를 사용하지 마십시오. (n) varchar (max). 일반 바르 차가 충분히 크지 않은 경우 바르 차 (Max) 만 사용하십시오.
언급 한 바와 같이, 텍스트 데이터 유형에서 하위 문자열을 사용할 수 있지만 텍스트 필드에는 8000 문자 미만이 포함되어 있습니다.
MS 2008에서 몇 가지 주요 변경 사항이있었습니다.> 사용 할 데이터 유형에 대한 결정을 내릴 때 다음 기사를 고려할 가치가있을 수 있습니다.http://msdn.microsoft.com/en-us/library/ms143432.aspx
바이트당
- varchar (max), varbinary (max), xml, 텍스트 또는 이미지 열 2^31-1 2^31-1
- NVARCHAR (MAX) 열 2^30-1 2^30-1