gpt4 book ai didi

java - 性能调整 : com. mchange.v2.resourcepool.Basicresourcepool.Awaitavailable() 方法占用应用程序的大部分运行时间

转载 作者:行者123 更新时间:2023-11-30 11:27:54 26 4
gpt4 key购买 nike

我有一个应用程序可以并行插入数据库数据 block (从技术上讲,很多 native INSERT 查询都在 EntityManager 对象上执行)。

我现在正试图了解如何加速这些插入。数据库主机和应用程序主机上没有任何显着的处理器负载和 io 等待时间,服务器之间几乎没有延迟。在 VisualJVM 采样器中,我可以看到大约 80% 的应用程序运行时间都花在了 com.mchange.v2.resourcepool.Basicresourcepool.Awaitavailable() 方法上。

有人知道这个方法到底在做什么吗?我尝试在 JPA 的连接池相关属性中增加/减少连接池 max_size 数量,但是没有看到任何显着差异。感谢任何其他建议如何加速插入。

请参阅以下为应用程序提供持久性的 EntityManagerFactory bean 的属性:

hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider
hibernate.connection.username=
hibernate.connection.password=
hibernate.connection.driver_class=jpa.connection.driver_class
hibernate.connection.url=
hibernate.connection.dialect=org.hibernate.dialect.OracleDialect
hibernate.connection.autoReconnect=true
hibernate.c3p0.min_size=3
hibernate.c3p0.max_size=100 /* tried different values - not much difference */
hibernate.c3p0.timeout=1800
hibernate.c3p0.max_statements=15000
hibernate.c3p0.acquire_increment=1
hibernate.c3p0.validate=false
hibernate.c3p0.format_sql=false
hibernate.c3p0.show_sql=false
hibernate.c3p0.idle_test_period=240
hibernate.c3p0.maxIdleTime=0

最佳答案

尝试对您的 INSERT 查询进行批处理。 IE。为多个 INSERT 收集一些数据并将其作为单个 INSERT 查询运行。

关于java - 性能调整 : com. mchange.v2.resourcepool.Basicresourcepool.Awaitavailable() 方法占用应用程序的大部分运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118158/

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