SQL Server 2008에서 varchar 사용의 속도 영향


9

예전 에는 나머지 행과 다른 페이지에 저장 되었으므로 varcharover char를 사용 하는 것은 큰 아니오 아니오 varchar였습니다. 오늘날에도 여전히 SQL Server 2008의 경우입니까? 테이블에서 1-3 varchar(5)열을 char(5)열로 변경하여 메모리 / 성능 향상을 볼 수 있습니까?

a) 2.000.000 행이라고 말하십시오. b) varchar열 중 하나가 색인 / 기본 키의 일부인 경우


2
가능한 중복 질문 필드 (varchar / nvarchar)가 너무 길면 성능 및 디스크 사용량에 어떤 영향을 줍니까? (MSSQL Server 2008) . 복제본이 아니라고 생각하면 거기에 대한 답변도 있습니다.
Marian

답변:


8

text / varchar (max) (LOB 유형)을 varchar (n) / char (n)과 혼동하고 있습니다.

그렇지 않으면 varchar (1000)이 아닌 char (1000)을 사용하는 경우 평균 데이터 길이는 42입니다. 이는 잘못된 디자인이며 많은 공간 낭비입니다.


DB2와 일부 다른 DB 엔진에서 char과 varchar는 다르게 저장되었으며 DB2에 대한 조언 중 일부는 SQL Server로 전송되었습니다.
Andrew Bickerton

@Andrew Bickerton : 또 다른 신화…
gbn

그 신화가 어디에서 튀어 나왔는지 지시 해 주실 수 있습니까? (이 조언은 SQL Server에 적용되지 않는다는 데 동의합니다.)
Andrew Bickerton

또한 성능 저하로 인해 PK가 클러스터되지 않아야한다는 SQL 2000의 조언과 유사하게 DB2의 원래 버전 중 하나 (아마도 지난 10 년 동안 이런 식으로 사용되지 않았을 가능성이 있음)를 언급하고 있습니다. 더 이상 사실이 아닙니다
Andrew Bickerton

@Andrew Bickerton : SQL Server의 디스크 구조 (여러 가지 SO 답변)를 간단히 살펴보십시오 . stackoverflow.com/search?q=user%3A27535+anatomy . 늦은 답변에 대해 죄송합니다
gbn

3

스키마에 대해 더 많이 알지 않고 특정 성능 향상 또는 적중에 대해 말하기는 어렵지만 일반적으로 데이터와 일치하도록 데이터 유형을 정의하려고합니다. 고정 너비가 필요한 경우 (예를 들어, 항상 다섯 문자가 있음을 알고있는 경우) char (5)를 사용해야합니다. 가변적 인 양의 데이터가있는 경우 varchar (5)를 사용해야합니다.

SQL의 경우 페이지에 더 많은 데이터를 넣을수록 성능이 향상됩니다.


3

내가 아는 한 SQL Server는 varchar 또는 nvarchar 데이터 형식을 행에 저장하지 않았습니다. 텍스트와 NText가 다릅니다. 가변 너비 열에 저장되는 추가 비트가 있지만 그 정도입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.