您好,功能Enable Prepared语句缓存与Spring无关,与REST无关。此函数是仅在数据源,JDBC驱动程序和数据库之间进行协商的问题。为了了解如何进行设置,请阅读有关驱动程序,数据源和数据库的相关文档。
涉及Hikari时,这样做的正确方法是(注意 datasource2 ,重命名为 datasource 以启用自动配置):
spring:
datasource2:
dataSourceClassName: com.zaxxer.hikari.HikariDatasource
.....
......
configuration:
maximumPoolSize: 25
data-source-properties:
ImplicitCachingEnabled: true
MaxStatements: 100
您配置中的属性将直接传递给基础驱动程序。
@Bean
@ConfigurationProperties("spring.datasource2")
public DataSourceProperties dataSourceProperties2() {
return new DataSourceProperties();
}
@Bean()
@ConfigurationProperties("spring.datasource2.configuration")
public DataSource hikariDatasource() {
return dataSourceProperties2().initializeDataSourceBuilder().build();
}
此示例使用基础数据源的手动初始化。
,
oracleDataSource.setImplicitCachingEnabled(true)
connection.setStatementCacheSize(10)
尽量接近最常用的语句的数量
默认语句缓存大小为10
session_cached_cursors = 50
Connection.setStatementCacheSize(10)
,
首先检查文档,以确保您的ojdbc8.jar
与数据库服务器版本匹配。 ojdbc8.jar
的11g,11gR2、12c版本不同。
根据this answer,需要在JDBC驱动程序中设置oracle.jdbc.implicitStatementCacheSize
属性。 This article提到了更多的JDBC驱动程序属性,例如oracle.jdbc.freeMemoryOnEnterImplicitCache
或oracle.jdbc.maxCachedBufferSize
。您需要检查驱动程序版本的文档以确认这些属性可用。
这可以使用Spring Boot HikariCP spring.datasource.hikari.data-source-properties
选项传递。请仔细检查您的Spring Boot版本的文档,此属性至少已重命名一次:
application.yaml
spring:
datasource:
hikari:
data-source-properties:
oracle.jdbc.implicitStatementCacheSize: 100
application.properties
spring.datasource.hikari.data-source-properties.oracle.jdbc.implicitStatementCacheSize: 100
您可能还对statement fetch size感兴趣,但是这种优化通常分别应用于每个语句。
本文链接:https://www.f2er.com/3103147.html