gpt4 book ai didi

java - Hibernate C3P0设置性能问题

转载 作者:行者123 更新时间:2023-12-02 06:03:05 24 4
gpt4 key购买 nike

自从我们向应用程序添加 C3P0 连接池以来,应用程序性能变得更慢。它是Oracle 10g数据库、Hibernate 3.1.3和C3P0 0.9.0.4。 WebSphere 应用服务器。我对这件事很陌生,所以我不明白一切。此配置会降低应用程序性能吗?如果是的话我应该改变什么?

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>     
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_size">50</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">600</property>
<property name="hibernate.c3p0.preferredTestQuery">select 1 from dual;</property>

最佳答案

  1. c3p0-0.9.0.x 非常非常旧。请更新到0.9.2.1或最新的0.9.5预发行版。较新的版本是直接替换,您只需要更新依赖项,或者如果您手动包含 jar 文件,请包含更新的 c3p0 jar 以及 mchange-commons-java jar 文件,您会发现它包含在 binary distribution 中.

  2. 您的性能问题很可能是由于将 max_statements 设置为 50 引起的。对于可能拥有最多 50 个 Activity 连接的池来说,这太小了。这意味着,当池已满时,平均每个连接会缓存一条语句,并强制语句缓存频繁搅动。我建议您从将 max_statements 设置为 0 开始,然后看看效果如何。然后,为了通过语句缓存获得更好的性能,请考虑 1) 您的应用程序持续使用多少个不同的PreparedStatement(即不仅在初始化时使用一次,而是在应用程序生命周期内重复使用)和 2) 将 hibernate.c3p0.maxStatementsPerConnection 设置为大约该值[或将全局 hibernate.c3p0.max_statements 设置为(该值 * Expected_pool_size),但为什么不直接使用更容易理解的 maxStatementsPerConnection?]

关于java - Hibernate C3P0设置性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com