오라클 varchar2 질문드립니다. 0 1 1,102

by 파카 [2015.01.23 11:04:33]


이번에 개발을 하면서 varchar2필드 길이를 늘릴 필요가 있었는데요,

변경사항은 길이가 255인 한 필드를 2000으로 늘리는 것인데,

이 테이블을 담당하던 분이 2000이 필요하긴 하지만 null일 경우가 무척많고,

2000까지 다 안쓸때가 대부분이라 낭비가 심하니 나중에 조정할 것 같다고 말씀하시네요.

 

제가 알기로는 varchar2는 가변이라서 공간 낭비가 없고,

단지 오라클 내부 로직이 char형보다 복잡하다는 것만 알고 있습니다.

 

해당 테이블로 정렬할 일도 없고, 단순 select를 많이 하는데

2000으로 늘리는게 그렇게 부담될수 있나요?

 

2000으로 지정하면 용량은 아낄수 있어도, 블록수는 그대로 유지된다 그런건지?

그렇다면 단순 셀렉트도 문제가 될수 있겠다고 생각하지만,

일단 제가 아는  선에서는 2000으로 늘렸다고 해서 그렇게 부담된다는건 이해가 안가네요.

 

varchar2의 필드를 많이 늘릴경우 단점이 뭐가 있나요?

by 아발란체 [2015.01.23 11:49:03]

단순하고 일반적으로 생각하면 말씀 주신 것처럼 공간 낭비는 없고 별 영향 없습니다.

좀 복잡하게 생각하면 일반적이지 않지만, 속성이 100개고 모두 4000으로 크기를 잡았는데 이 공간을 다 쓰는 데이타가 많다면  여러 블록에 저장되며 비효율이 발생 할 수 있습니다.

보통 이런 식으로 테이블이 설계되는 특수한 경우가 있어도 데이타가 다 차는 경우는 많이 없고, 그 가끔 생기는 것들이 체인이 발생할 수 있습니다.

만약 가끔이 아닌 빈번하다면 테이블을 분할하여 따로 관리를 하는 것이 좋은 방법이 될 것 같습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입