기준 및 왼쪽 가입을 사용하여 성능 문제가 있습니다. 이제최대 절전 모드 기준의 Performace 문제 + 가입
Criteria crit = session.createCriteria(CuttingAssignment.class);
crit.add(Restrictions.eq("cuttingMachine", cuttingMachine));
crit.createAlias("cuttingBatch", "cuttingBatch");
crit.addOrder(Order.asc("psn"));
crit.setFetchMode("cuttingBatch", FetchMode.JOIN);
crit.setFetchMode("cuttingMachine", FetchMode.JOIN);
crit.createAlias("cuttingBatch.isolatingBatches", "cuttingBatch.isolatingBatches", Criteria.LEFT_JOIN);
crit.createAlias("cuttingBatch.isolatingBatches.assignments", "cuttingBatch.isolatingBatches.assignments", Criteria.LEFT_JOIN);
crit.createAlias("cuttingBatch.articleType", "cuttingBatch.articleType");
crit.setFetchMode("cuttingBatch.articleType", FetchMode.JOIN);
crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
List<CuttingAssignment> cuttingAssignmentList = crit.list();
그것이 내가 성능 문제에 직면하고 있기 때문에 그 DB에 너무 많은 SQL 쿼리를 실행합니다 : 다음은 내 쿼리입니다?
기준 쿼리를 최적화하는 방법은 무엇입니까? 기준과 HQL 쿼리간에 차이가 있습니까?
미리 감사드립니다.
최대 절전 모드에서 보낸 SQL 요청을 먼저 확인해야합니다. 예를 들어 http://stackoverflow.com/questions/1710476/print-query-string-in-hibernate-with-parameter-values를 참조하십시오. 그런 다음 JOIN에 대한 올바른 색인이 있는지 확인하십시오. – Guillaume
로그 수준을 위로 설정하여이 쿼리에 사용 된 SQL을 확인한 다음 EXPLAIN PLAN을 사용하여 수동으로 실행하려고 시도 했습니까? – beny23