사용자 도구

사이트 도구


mssqlserver:jdbc

문서의 이전 판입니다!


MS SQL Server JDBC

Timeout

설정값이 millisecond와 second가 섞여 있어서 매우 주의해야 함.

JDBC Driver 사용시 String 파라미터로인한 Full Scan 문제

# JDBC URL 파라미터로 아래 지정하면 VARCHAR 로 강제로 전송함
sendStringParametersAsUnicode=false
단, 이 경우에도 JDBC 4 에서 지원하는 setNString() 같은 setN* 계열 사용시에는 Unicode로 전송한다.

# sendStringParametersAsUnicode=false 상황에서도 NVARCHAR 전송이 필요하면
pStmt.setObject(2,Id,Types.NVARCHAR); //강제로 Unicode로 전송
# 혹은 setNString() 사용

혹은 JDBC 드라이버 변경없이convert로 처리한다.

...
WHERE varcharcolumn = CONVERT(VARCHAR, ?)

Logging

  • MS의 JDBC Driver는 java.util.logging 사용
  • Slf4j의 jul-to-slf4j 설정 적용해야 함.
  • 쿼리 로그 설정 - 6.x 버전
    <logger name="com.microsoft.sqlserver.jdbc.internals.SQLServerConnection" level="DEBUG"/>
    <logger name="com.microsoft.sqlserver.jdbc.internals.SQLServerStatement" level="DEBUG"/>
    <logger name="com.microsoft.sqlserver.jdbc.internals.SQLServerResultSet" level="DEBUG"/>
  • 쿼리 로그 설정 - 구버전
    • com.microsoft.sqlserver : info 이상
    • com.microsoft.sqlserver.jdbc.Connection : debug
    • com.microsoft.sqlserver.jdbc.Statement : debug
mssqlserver/jdbc.1535098776.txt.gz · 마지막으로 수정됨: 2018/08/24 17:19 저자 kwon37xi