IT Cafe+/MS-SQL
SQL Server sendStringParametersAsUnicode=false
고드림
2020. 8. 28. 16:13
SQL DB에서는 JDBC string type을 NVARCHAR 로 처리함.
그래서
varchar 로 된 컬럼에 대한 값이 string 으로 될 경우
묵시적 형변환이 일어나 Index 를 타지 않고 속도가 느려짐.
예)
test_table.com_id varchar(10)이고
index 가 생성되어 있음.
SELECT *
FROM test_table
WHERE com_id = v_string
;
이 쿼리에서
com_id 는 varchar, v_string은 nvarchar.
com_id, v_string 의 data type을 맞춰주기 위해 둘 중에 하나를 변경해야 하는데
nvarchar 가 varchar 보다 dataType 우선순위가 높기 때문에
com_id 가 navarchar 로 변환이 됨.
이걸 방지하기 위해
String type 의 parameter 를 기본 VARCHAR 로 매핑하고 싶다면 또는 해야한다면, JDBC URL 에
sendStringParsendStringParametersAsUnicode=false 를 추가하면 된다.
참고사이트
https://woowabros.github.io/study/2019/01/25/sqlserver-jdbc-driver.html