首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mssql-jdbc MS SQL Server JDBC驱动程序准备了Hikari CP的语句缓存性能问题

mssql-jdbc MS SQL Server JDBC驱动程序准备了Hikari CP的语句缓存性能问题
EN

Stack Overflow用户
提问于 2018-06-02 00:06:42
回答 2查看 1.2K关注 0票数 4

我们一直在将服务器从使用Hibernate 4.2转换为Hibernate 5.2。

Hibernate 5.2需要JDBC 4.2 (Java 8),这要求我们切换到Hikari CP连接池,它是我们以前使用的Bone (现在已被废弃)的一个分支,因为Bone只支持JDBC 4.1 (Java 7)。

与Bone不同的是,Hikari CP不再在连接池中提供准备好的语句缓存,因此现在需要在JDBC驱动程序中进行缓存,对于MS SQL Server来说,这意味着我们需要迁移到在驱动程序中提供准备语句缓存的JDBC驱动程序版本,而mssql 6.4.0 (2018年1月发布)是第一个这样做的版本。

从Hibernate 4.2 + Bone 0.8.0 + sqljdbc42 4.6420.100MSSQLServerJDBC驱动程序到Hibernate 5.2 + Hikari 2.7.8 +MSSQLJDBC6.4.0.jre 8。

不幸的是,由于这次切换,我们看到读查询性能平均下降了20-30% --这是不可接受的。

然而,在使用Hibernate 5.3 + Hikari +它们的JDBC驱动程序的Oracle和MySQL的相应结果中,我们实际上看到了大约5%-15%的性能改进--因此我们相当肯定这不是Hibernate (而且它不能直接是Hikari,因为一旦连接传递给我们之后就不存在了)。

因此,我们正在研究从Bone 0.8.0准备语句缓存切换到MSSQLJDBC6.4准备语句缓存的问题。

我们已经证实,如果我们将mssql 6.4驱动程序准备好的语句缓存关闭,性能会再差10%,因此它做得有点好(我们还在调试器中确认它实际上是在缓存东西)。

我们还尝试调优所有明显可用的缓存调优参数:statementPoolingCacheSizeserverPreparedStatementDiscardThresholdenablePrepareOnFirstPreparedStatementCall (以及useCursors),但效果很小。

  • 有人有使用Hikari CP + mssql-jdbc 6.4的经验吗?或者最好是使用Hibernate 5+ Hikari CP +mssql 6.4?
  • MSSQLJDBC6.4中准备好的语句缓存性能不佳(相比之下,Bone用来提供什么)是一个已知的问题吗?还是sqljdbc42对读取查询的总体速度比sqljdbc42慢?
  • 我们是否遗漏了mssql的任何其他调优参数?有人能建议我们可以尝试的其他东西吗?例如,我们是否可以尝试另一个驱动程序?(jDTS不是一个选项,因为它甚至与JDBC4.0不兼容)
EN

回答 2

Stack Overflow用户

发布于 2018-12-01 13:07:00

不能直接回答所有这些问题--在我们的例子中,帮助提高性能的是禁用Hikari上的自动提交(在Spring 2.1中提供了相同的jdbc驱动程序版本,作为默认版本)。接下来,需要将名为‚hibernate.connection.provider_disables_autocommit‘的Hibernate选项设置为true。这允许将事务时间最小化。

请注意,7.x JDBC驱动程序是可用的--您是否注意到了相同的问题?

如果您正在使用Spring :还请记住设置,Spring.jpa.open- in -view=false‘以避免不必要的长事务(实际上是反模式)。

它不是对您的问题的直接回答,但它将有助于提高使用Mssql和Hibernate的性能。

票数 0
EN

Stack Overflow用户

发布于 2019-12-31 10:37:50

在野生蝇从10.0.Final到17.0.1 from的迁移过程中,我们也遇到了类似的情况。

除了长期运行的过程外,总体性能得到了改善。

在Hibernate 4.3中,缓存值为100,在迁移到Hibernate 5.3之后,该值被缩小到32,以在长时间运行的进程中实现相同的性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50652333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档