【发布时间】:2018-01-01 18:41:38
【问题描述】:
我在我的代码中使用 JPQL 构造函数。它涉及大量结果、检索到的 5024 个数据以及在执行此查询时创建的对象。完成执行大约需要 2 分钟。执行此查询涉及多个表。我不能去缓存,因为数据库数据会每天更新。有什么办法可以优化执行速度?
我的SQL查询形成是这样的,
String sql = "SELECT DISTINCT "
+ "new com.abc.dc.entity.market.LaptopData(vd.segment.id, vd.segment.segmentGroup, "
+ "vd.segment.segmentName, vd.segment.category, "
+ "vd.product.make, vd.product.model, vd.product.modelYear) "
+ "FROM LaptopData vd, Profile p "
+ "WHERE vd.profile.profileCode = :profileCode "
+ "AND vd.pk.profileId = p.id "
+ "Order By vd.segment.segmentGroup, vd.segment.segmentName, vd.product.make, vd.product.model,"
+ " vd.product.modelYear asc";
Query query = em.createQuery(sql);
query.setParameter("profileCode", profileCode);
@SuppressWarnings("unchecked")
List<LaptopData> results = query.getResultList();
em.clear();
return results;
【问题讨论】:
-
查看了执行的生成SQL?时间都花在了哪里?