【发布时间】:2014-07-10 11:26:07
【问题描述】:
我的 Web 应用程序的性能非常低,处理微不足道的 HTTP 请求需要几十秒。跟踪应用程序代码我发现大部分时间都花在执行第一个数据库查询上,即使它像在单行单列表上的 SELECT 一样简单。这发生在每个 HTTP 请求上,与执行的查询无关。在第一次病态 DB 交互之后,其余查询顺利进行。
我在 Oracle DB 之上使用 Hibernate(使用 jdbc)。
这不是连接池的问题,因为我成功使用了Hibernate-c3p0,它似乎也与Oracle本身无关,因为如果直接在DB上执行,所有查询都会立即返回。
此外,Hibernate SessionFactory 仅正确创建一次,在应用程序启动时,并发性根本不是问题,因为测试是使用单个用户完成的。
最后,我的 DB IP 地址在我的应用服务器 /etc/hosts 中得到了正确解析,因此甚至可以丢弃与 DNS 相关的问题(我使用两个不同的虚拟机,DB 和 APP 服务器)。
我不知道该寻找什么,有什么帮助吗?
【问题讨论】:
标签: performance oracle hibernate