私のコードでJPQLコンストラクターを使用しています。このクエリを実行すると大きな結果、5024個のデータが取得され、オブジェクトが作成されます。実行を完了するまでに約2分かかります。このクエリを実行するには複数のテーブルが必要です。 DBデータが毎日更新されるため、私はキャッシュに行くことができませんでした。実行速度を最適化する方法はありますか?その後、JPQLコンストラクターの実行に長時間かかる
私の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を調べましたか?時間はどこに費やされていますか? –