Hibernate& fetch_size仅适用于本机查询?

时间:2014-03-04 16:02:01

标签: java sql hibernate oracle11g

将数据库从我的国家/地区迁移到另一个国家/地区时,我的应用程序变慢了。 分析此问题后,查询的执行时间似乎相同,但获取数据的时间

解决此问题的一个解决方案是设置 hibernate.jdbc.fetch_size 参数。 但是(参见下面的示例),它似乎只适用于请求,只有这些请求是用NativeQuery编写的,并且它没有解决任何问题,因为如果有一些连接表,我将无法获得有关它们的任何信息。

1°/ HSQL - > 40年代!

StringBuffer sql = new StringBuffer("");
sql.append(" from MyHibernateClass ");      
log.info("Before createQuery");
Query aQuery = em.createQuery(sql.toString());
log.info("After createQuery and before getResultList");
aQuery.getResultList();
log.info("After getResultList");

04 mars 2014 - 16:50:52,506 信息:在createQuery之前 04 mars 2014 - 16:50:52,506 信息:在createQuery之后和getResultList之前 04 mars 2014 - 16:51:31,491 信息:getResultList之后

2°/ Native SQL - > 0.2秒(但没有来自其他联合表的信息)

StringBuffer sql = new StringBuffer("");    
sql.append(" select * from MYTABLE ");      
log.info("Before createNativeQuery");
Query aQuery = em.createNativeQuery(sql.toString());
log.info("After createNativeQuery and before getResultList");
aQuery.getResultList();
log.info("After getResultList");        

04 mars 2014 - 16:54:53,667 信息:在createNativeQuery之前 04 mars 2014 - 16:54:53,667 信息:在createNativeQuery之后和getResultList之前 04 mars 2014 - 16:54:53,823 信息:getResultList之后

所以我不知道用这个遥远的数据库来重演表演......

0 个答案:

没有答案