안녕하세요
평소 DB에 대해 도움을 받고 있는 1인 입니다.
저희가 DB서버를 AWS로 옮기는 계획중에 있는 그전에 DB 데이터형을 모두 유니코드 전환하는
계획을 하고 있습니다. VARCHAR(CHAR) -> NVARCHAR(NCHAR)
현재는 DB 성능 관련해서는 크게 문제는 없는데 만약 데이터형을 모두 전환을 했을때 (대상 컬럼 5만개...ㅜㅜ)
발생할 수 있는 이슈나 체크해야하는 이슈사항 혹은 사례들이 있는지 궁금합니다.
제가 확인한 부분은 아래와 같습니다.
- 변경 컬럼의 인덱스 재생성
- SARG(JOIN 키포함)의 데이터 타입 일치
- 복제 재구성
- 데이터 용량 증가(인덱스 용량 포함)
- 프로시저내 데이터 타입 일치
궁금한 사항
- 기존 인덱스 키가 VARCHAR 였는데 NVARCHAR 로 전환후 재생성 했을때 성능 저하가 있을수 있는지...(PAGE IO 증가?)
- NVARCHAR로 변경후 프로시저내 조인키들에 대한 성능 저하가 있을수 있는지...
미리 답변 감사드립니다.
추가 체크사항
- 프로시저 내 VARCHAR 타입의 데이터 길이 유효성 체크부분
- JOB을 통한 VARCHAR 타입 관련 생성, 수정 등 연관부분(보통 테이블 생성, 분할된 뷰)
궁금한 사항
- 기존 인덱스 키가 VARCHAR 였는데 NVARCHAR 로 전환후 재생성 했을때 성능 저하가 있을수 있는지...(PAGE IO 증가?)
- NVARCHAR로 변경후 프로시저내 조인키들에 대한 성능 저하가 있을수 있는지...
-> 인덱스 키의 사이즈가 성능에 영향을 미칠 수 있습니다.
기존 VARCHAR 타입의 데이터가 2바이트를 사용한다면 기존 대비 영향은 없겠지만
1바이트를 사용하여 기존 대비 2배 차이가 난다면 해당 키의 실제 데이터 사이즈에 따라
성능 저하가 발생할 수 있습니다.