varchar (MAX)가 항상 선호하는 검사?
SQL Server와 관련하여 다음을 이해합니다.
var
메모리가 지연 할당됨을 의미합니다. 즉, 데이터에 정확히 맞습니다 (삽입시).MAX
크기 제한 / 제한이 없음을 의미합니다.
그렇다면 전체 크기를 할당하지 않기 때문에 를 사용할 MAX
때 항상 사용하는 것이 더 varchar
낫습니까?
이 DB 열에 넓게 사용할 수 있습니다.
이 주제에 대한 SO 사용자 @Remus Rusanu의 아주 좋은 기사가 있습니다. 여기 내가 훔친 부분이 내용을 읽어보십시오.
MAX 유형 (varchar, nvarchar 및 varbinary)을 처리하는 코드 경로는 동등한 비 길이 유형을 처리하는 코드 경로와 최대와. 비 최대 유형은 내부적으로 일반 포인터 및 길이 구조로 표시 될 수 있습니다. 그러나 최대 유형은 최대 2Gb까지 증가 할 수 있기 때문에 연속적인 메모리 영역으로 내부적으로 사용할 수 없습니다. 따라서 COM의 IStream과 플레이 스트리밍 인터페이스가 표시되어야합니다. 복잡한 작업은 스트리밍 인터페이스보다 복잡하기 때문에 단순 할당 및 비교를 포함하여 유형을 포함하는 모든 작업에 적용됩니다. 가장 큰 영향은 최대 유형 변수를 할당하고 할당하는 코드 (내 첫 번째 테스트)에서 볼 수있는 영향은 모든 작업에서 볼 수 있습니다.
이 기사에서 varchar (n)을 사용하면 일반적으로 성능이 향상됩니다.
여기 에서 전체 기사를 사용할 수 있습니다 .
여기에서 좋은 답을 찾으십시오.
varchar (n) 또는 varchar (MAX)를 사용합니까?
짧은 대답은 관점에서는 동일하지만 관점에서는 varchar (N)를 사용하는 것이 더 낫다는 것입니다.
Microsoft에서 권장하는 사항은 다음과 가변적입니다.
- 열 데이터 항목의 크기가 일치 할 때 문자를 사용하십시오.
- 열 데이터 항목의 크기가 상당히 다를 경우 varchar를 사용하십시오.
- 열 데이터 항목의 크기가 상당히 다양하고 크기가 8,000 바이트를 초과 할 수있는 경우 varchar (최대)를 사용합니다.
이것에 대해 대화하기 위해 대답은 NO 입니다. 항상 varchar (N)을 사용하는 것이 있고, 크기가 변하지 않을 것입니다. MAX 유형은 대부분의 원시 SQL 기능을 지원하지 않고 지원할 수있는 것이 추가하거나 조인을 수행하거나 해당 유형에 대한 검색을 수행하지 않습니다. 또한 이것이 SQL Server에 전체 텍스트 검색 기능이있는 이유 중 하나입니다.
또한 varchar (max) 는 varchar (max) 필드를 포함하는 전체 테이블 에 대해 온라인 설계를 수행하는 기능을 방지합니다 . 이는 성능에 상당한 영향을 미칩니다.
Varchar (max)는 필드 크기가 8K 이상인 경우에만에만 있습니다. 다른 모든 경우에는 크기를 지정해야합니다. 말이있는 가난한 디자인 및 것 어떤 것이 시스템의 가장 사소한 성능 문제가 보관됩니다.
일부 참조 :
- http://www.sqlservercentral.com/blogs/martin_catherall/2011/10/26/watch-those-varchar_2800_max_2900_-columns_2C00_-and-online-index-rebuilds/
- http://blogs.msdn.com/b/psssql/archive/2012/12/03/how-it-works-gotcha-varchar-max-caused-my-queries-to-be-slower.aspx
참고 URL : https://stackoverflow.com/questions/8512164/is-varcharmax-always-preferable
'ProgramingTip' 카테고리의 다른 글
Go에서 분할을 수행하는 방법 (0) | 2020.11.15 |
---|---|
Func의 차이점은 무엇입니까 (0) | 2020.11.15 |
읽어야하는 PEP는 무엇입니까? (0) | 2020.11.15 |
C #에서 개체의 메모리 주소 (0) | 2020.11.15 |
iOS 8에서 작동하지 않는 Segue 해제 (0) | 2020.11.15 |