SQL Server sendStringParametersAsUnicode=false 본문

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

Comments