将数据库从我的国家/地区迁移到另一个国家/地区时,我的应用程序变慢了。 分析此问题后,查询的执行时间似乎相同,但获取数据的时间。
解决此问题的一个解决方案是设置 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之后
所以我不知道用这个遥远的数据库来重演表演......