에 절을 여러 부속 선택을 최적화 : 나는 쿼리의 실행 계획을 보면내가 같은 쿼리가 오라클
select
qsn.code,
(select prs.display_name from prs where prs.id = qsn.fk_prs) display_name,
(select prs.address from prs where prs.id = qsn.fk_prs) address,
(select prs.tel from prs where prs.id = qsn.fk_prs) tel
from
qsn
where
qsn.register_date between :x1 and :x2
를, 그것은 prs
테이블 3 회 (INDEX UNIQUE SCAN
를 사용하여 각 시간)을 조회합니다. 내가 한 번 절을 를 사용하여 prs
테이블을 조회 할 수있는 경우
각 테이블에 수백만 개의 레코드가 있으므로 이들을 조인하면 쿼리가 너무 느려집니다.
실행 계획을 보지 않고서는 쉽게 추측 할 수 있습니다. 두 쿼리 모두에 대해 [실행 계획] (http://stackoverflow.com/questions/34975406/how-to-describe-performance-issue-in-relational-database?answertab=active#tab-top)을 게시하십시오 (하위 쿼리 및 조인과 함께). 당신의 관찰에 대한 한 가지 설명은 해쉬 조인 (두 테이블 모두에서 가능한 FTS 사용)으로 전환한다는 것인데, 다른 설명은 스칼라 하위 쿼리 캐싱에서 이익을 얻는 것입니다 (상대적으로 적은 수의 qsn.fk_prs가 있음). –