2014-05-23 3 views
0

내 프로젝트에서 jpa 자체 조인 관계를 구현했습니다. 이 테이블에는 200,000 개 이상의 레코드가 있습니다. 고아 주석을 삭제하려고합니다. 이제 내 애플 리케이션이 자기 조인이 고아 엔티티를 삭제하려고하면 DB에 레코드를 삭제하는 데 너무 오래 걸립니다. dba 체크 인덱스와 그 밖의 모든 것.Jpa 자체 조인 성능 문제

누군가이 성능 문제의 원인을 설명해 주시겠습니까? 쿼리를 보면, 나는 그 레코드를 삭제하기 전에 부모 테이블 관계를 확인하기 위해 전체 테이블을 스캔한다고 생각합니다.

답변

0

대용량 테이블 및 자체 조인의 경우 일반적으로 ORM 도구로 생성 된 단순 조인 쿼리는 실행되지 않습니다. ORM에 의해 생성 된 SQL을 기록한 다음 EXPLAIN PLAN FOR 또는 EXPLAIN (데이터베이스가 oracle인지 mysql인지에 따라 다름)을 실행하고 출력을 분석 할 수 있는지 확인하십시오. 이렇게하면 틀린 것이 무엇인지 알 수 있습니다. 대체 SQL 쿼리를 작성하고 조정 한 다음 JPA의 NativeQuery 기능을 사용하여 쿼리 결과를 효과적으로 가져와야 할 수 있습니다.

+0

네이티브 쿼리를 사용하여 고아 레코드를 삭제하는 것이 좋습니다? – user509755