문제: SQL 서버(SQL Server) 데이터베이스에서 기본키가 VARCHAR 타입인 테이블의 특정 기본키 컬럼 값에 대한 데이터 조회 시 쿼리 속도가 느리다.
원인: 기본적으로 sendStringParametersAsUnicode 연결 속성이 true이다.
내용: SQL 서버는 연결 속성 중 sendStringParametersAsUnicode 속성이 true일 경우 문자열 파라미터를 유니코드 형식으로 서버에 보내며, false일 경우 유니코드가 아닌 ASCII/MBCS 형식으로 서버에 보낸다. SQL 서버는 기본적으로 sendStringParametersAsUnicode 속성이 true이므로 문자열 타입의 파라미터를 NVARCHAR로 보낸다. 이 경우 제공된 NVARCHAR 타입의 문자열 파라미터 값과 실제 VARCHAR 타입의 컬럼 값 사이에 암시적 타입 캐스팅(implicit type casting)이 일어나게 되며 해당 컬럼에 설정된 인덱스가 사용되지 않게 된다. 이는 애플리케이션 코드 상에서 바인딩 파라미터 값을 명시적으로 VARCHAR 타입으로 지정하는 경우에도 마찬가지이다.
Caching is the practice of replicating data from an origin datastore into a separate storage so it can be served faster. Caching is an important technique to...
Comments