2008-11-20 2 views
4

내 고객이 메모 필드의 길이를 연장하도록 요청하는 이미 큰 표가 있습니다. 노트 필드는 이미 NVARCHAR (1000)이며 3000으로 확장해야합니다. 장기적인 솔루션은 노트를 테이블 밖으로 이동하고 NVARCHAR (max) 필드를 사용하는 노트 테이블을 만드는 것입니다. 필요할 때. 제 질문은 단기적인 문제입니다. 미래에이 필드가 이동 될 것임을 알면 지금 막 NVARCHAR (3000) 필드를 늘리면 어떤 문제가 발생할 수 있습니까?NVARCHAR (3000)의 문제점은 무엇입니까

답변

3

텍스트 및 ntext 대신 varchar (max) 및 nvarchar (max)가 사용됩니다. 그래서 nvarchar (3000)는 괜찮을 것입니다.

2

아마도이 사실을 이미 알고있을 것입니다. 그러나 증가 된 길이로 인해 총 레코드 길이가 8000을 초과하지 않도록하십시오. 2005/2008에도 여전히 적용됩니다.

1

중간 솔루션의 경우 nvarchar (3000)를 사용해도됩니다. 최대 nvarchar (4000)까지 이동할 수 있습니다. 그리고 km.srd.myopenid.com에서 이전에 게시 한 것처럼 행의 전체 길이가 8000을 초과하지 않도록하십시오 (nvarchar는 일반 varchar의 2 배 크기이므로 nvarchar (4000)), varchar (8000)을 가질 수 있습니다.

1

열을 NTEXT로 변경하는 것이 좋습니다. 데이터 양에 거의 제한이 없으며 데이터는 나머지 행 데이터와 함 2 저장되지 않습니다. 이렇게하면 최대 행 크기 제한을 초과하지 않게됩니다.

유일한 단점은 해당 열에서 "LIKE"검색 만 수행 할 수 있으며 색인을 생성 할 수 없다는 것입니다. 그러나 메모 필드 인 경우 내 추측으로는 검색을 수행하지 않는 것입니다.

0

큰 필드를 수용하기 위해 데이터 페이지가 분할 될 수 있으므로 속도가 더 느려질 수도 있습니다. 이 작업을 통해 8060 바이트를 초과하는 레코드를 허용하는 구조를 만들 수 있지만 실제로 문제가있는 것보다 많은 데이터 레코드를 추가하려고하면주의해야합니다.

관련 문제