2009-04-27 4 views
1

데이터베이스에 문자열을 저장해야합니다. 각 문자열은 1에서 N까지의 크기가 다릅니다. 한계가 약 10000 정도라고 생각합니다. 이 문제를 해결하는 가장 좋은 방법은 nvarchar (MAX)입니까?문자열을 저장하는 SQL

답변

4

SQL Server 2005 이상에서 NVARCHAR(MAX)4000 자 이상이 될 수있는 문자열을 저장하는 가장 좋은 방법입니다.

역 호환성을 위해 여전히 TEXT 열을 지원하지만 SQL Server 2005 이상으로 권장되는 유일한 방법입니다.

NVARCHAR(MAX) 열에는 색인을 만들 수 없습니다.

인덱스를 사용하려면 계산 된 열을 만들어 인덱스 검색에 사용하십시오. 이는 효율적인 거친 필터로서 기능 할 수있다 : 그들은 유니 코드 (또는 비 7- 또는 8 - 비트 스트링 다른) 경우

CREATE TABLE foo (id INT NOT NULL, mytext NVARCHAR(MAX) NOT NULL, mytext_index AS CAST(mytext AS NVARCHAR(450)) 

CREATE INDEX ix_foo_mytext (mytext_index) 

SELECT * 
FROM mytext 
WHERE mytext_index LIKE 'L%' 
+0

4000 개가 넘는 이유는 nvarchar에 관한 이야기이므로 –

+0

예. 서둘러에서 고정 :) – Quassnoi

1

NVARCHAR가 맞습니다. 예를 들어 ASCII 라틴 -1 텍스트 인 경우 (대부분의 경우 충분 함) varchar (MAX)는 공간을 절약합니다.

관련 문제