JBoss7.1.1(Hibernate4.x)中的JPA查询性能下降的原因是什么?
我有一个在JBoss6.1(Hibernate3.6)中运行良好的查询。这是一个简单的两表联接,返回955条记录。当我在JBoss 7.1.1中部署相同的.war文件时,性能会显著下降(至少一个数量级)。以下是查询:JBoss7.1.1(Hibernate4.x)中的JPA查询性能下降的原因是什么?,hibernate,jboss,jpa-2.0,Hibernate,Jboss,Jpa 2.0,我有一个在JBoss6.1(Hibernate3.6)中运行良好的查询。这是一个简单的两表联接,返回955条记录。当我在JBoss 7.1.1中部署相同的.war文件时,性能会显著下降(至少一个数量级)。以下是查询: SELECT c.uid, c.name, -1, c.file_Id, cs.error, cs.is_Error, c.parent_Uid, c.job_Id, c.description FROM stage.Classification_Status cs, stage
SELECT c.uid, c.name, -1, c.file_Id, cs.error, cs.is_Error, c.parent_Uid, c.job_Id, c.description
FROM stage.Classification_Status cs, stage.Classification c
WHERE cs.is_Error = true AND cs.classification_Id = c.id AND c.job_Id = 3001;
我不知道JBoss 7.1.1中捆绑了哪个版本的Hibernate,所以我不知道应该针对哪个verion提交bug
还有谁见过这种从Hibernate3.6到4.x的性能冲击吗?你知道是什么原因吗?你记录得太多了吗 因为这确实需要时间,所以如果不登录,性能会更好 我有一个只有一个日志调用的servlet,根据Firebug/Firefox,响应时间为1ms,没有日志记录,只有2ms登录文件,3ms登录文件和控制台和1270毫秒当我记录955次时
通过多次尝试,这些日志记录的时间是最好的,但并不经常。另一方面,不记录日志的1ms更为频繁。我假设在两台服务器上生成相同的查询?如果发送相同的SQL查询,则结果必须位于较高级别的某个位置。数据源配置不正确/缺少池或没有缓存?也许N+1问题不知何故发生了?您确定没有向数据库发送额外流量吗?您尝试过分析吗?时间花在query.getResultList()中。我从JBoss7.1(存在性能问题)获取了Hibernate生成的查询,并直接在同一个数据库上运行它,该查询立即返回955个结果。这不是生成的查询,而是JBoss 7/Hibernate 4.x对结果集所做的操作。