2015-02-06 7 views
3

HikariCP 연결 풀에 대해 MS SQL RDBMS에서 명령문 캐싱을 활성화하려면 어떻게해야합니까? PostgreSQL을 들어 MS SQL (Microsoft JDBC 드라이버 4.1)에 캐싱하는 HikariCP 문

dataSource.cachePrepStmts=true 
dataSource.prepStmtCacheSize=250 
dataSource.prepStmtCacheSqlLimit=2048 

를 통해 : 오라클, 다음 작품

hikari.dataSource.prepareThreshold=1 

:

dataSource.implicitCachingEnabled=true 
and adjusting via setMaxStatements() method of OracleDataSource 

하지만 MS 아무것도 발견하지 않았습니다

는 MySQL의 경우는 경유 SQL 2012 이상.

답변

4

데이터베이스 드라이버가 명령문 캐싱을 제공해야하므로 HikariCP는 명령문 캐싱을 제공하지 않습니다. 그리고 내가 볼 수있는 한 (*), "SQL Server 용 Microsoft JDBC 드라이버"도 없습니다. 이렇게하면 대체 데이터베이스 드라이버 jTDS를 사용할 수있는 옵션이 남습니다. jTDS home page은 MS SQL 2012와의 호환성을 나타내지 않지만 sourceforge project page (jTDS를 사용하지 않았으므로 프로젝트 페이지가 최신 버전 (**)이라고 가정 함)와 호환됩니다.

기본적으로 jTDS 드라이버는 연결 당 500 개의 명령문을 캐시합니다 (FAQ pagemaxStatements에 대한 설명 참조). 대신 dataSourceClassNamecom.microsoft.sqlserver.jdbc.SQLServerDataSource를 사용

, net.sourceforge.jtds.jdbcx.JtdsDataSource (라고도 또한 HikariCP는 드라이버 jTDS를 시험 하였다 this page에 나타내는 바와) 사용.

(*) SQLServerDataSource에 사용할 수있는 옵션은 ISQLServerDataSource에 문서화되어 있지만 명령문 캐싱에 대한 옵션을 찾을 수 없습니다.

(**) 마지막 bug-reports 중 하나의 주석을 권장합니다. "우리는 문제없이 SQL Server 2014와 함께 jTDS 1.3.1을 사용하고 있습니다."

+2

오래되었지만 jTDS를 과거에는 큰 성공을 거두었습니다. – brettw

+3

불행히도 jtds는 jdbc3과 만 호환됩니다. – kulatamicuda