3

HikariCP 接続プールの MS SQL RDBMS でステートメント キャッシュを有効にするにはどうすればよいですか?

MySQL の場合は次の方法を使用します。

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

PostgreSQL の場合:

hikari.dataSource.prepareThreshold=1

Oracle の場合、次のように動作します。

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

しかし、MS SQL 2012 以降については何も見つかりませんでした。

4

1 に答える 1

4

ステートメント キャッシングはデータベース ドライバーによって提供される必要があります。HikariCP はステートメント キャッシングを提供しません。そして、私が見る限り(*)、「Microsoft JDBC Driver for SQL Server」もそうではありません。これにより、代替データベース ドライバー jTDS を使用するオプションが残ります。jTDSホームページは MS SQL 2012 との互換性を示していませんが、sourceforge プロジェクト ページには互換性があります(私は jTDS を使用していないので、プロジェクト ページは最新のものであると想定しています (**))。

デフォルトでは、jTDS ドライバーは接続ごとに 500 ステートメントをキャッシュします ( FAQ ページmaxStatementsのコメントを参照してください)。

を使用する代わりに、dataSourceClassName com.microsoft.sqlserver.jdbc.SQLServerDataSource使用しますnet.sourceforge.jtds.jdbcx.JtdsDataSource(このページにも記載されていますが、これは HikariCP が jTDS ドライバーでテストされたことも示しています)。

(*) で使用できるオプションはISQLServerDataSourceSQLServerDataSourceに記載されていますが、ステートメント キャッシュのオプションが見つかりませんでした。

(**) 最後のバグ レポートの 1 つで励ましのコメント:「問題なく SQL Server 2014 で jTDS 1.3.1 を使用しています。」

于 2015-02-06T17:57:44.737 に答える