마농님 답변 감사합니다
start with 말고 할 수 있는 방법이 있을까요?
(해당 데이터가 너무 많아서요 )
안녕하세요 아래 테이블로 결과를 산출하는 쿼리 부탁드립니다
<테이블>
fr_act to_act
a b
b c
c d
ㄱ ㄴ
ㄴ ㄷ
<결과>
a c
a d
ㄱ ㄷ
감사합니다
똑같은 질문을 새로 하시는 이유가? 기존 질문에 댓글로 추가 해도 될텐데요? 데이터가 많다는거 빼고는 질문을 그대로 복사해 붙이셨네요. ㅡ,.ㅡ
데이터가 많다고 해서 안될 것은 없는데요? 혹시 속도 문제라면 인덱스가 없는 모양이네요. fr_act 와 to_act 각각의 인덱스가 필요합니다.
마농님 답변 감사합니다.
FR_ACT에 해당하는 건수가 약 200만건에
최종결과가 약 3억건 정도가 되니. 속도 측면에서 이슈가
발생해서요.
start with절로 해결시 약 1시간 정도가 소요 됩니다.
시뮬레이션 을 자주 실행하니 인덱스에 대한 압박도 심하고요.
다른 방법을 모색중입니다.
테이블 자체가 계층형(재귀참조)으로 설계되어 있네요. 이 경우 계층쿼리나 재귀쿼리등을 사용해야 원하는 결과를 얻을 수 있으며 이를 위해서는 각각의 컬럼에 대한 인덱스가 있는 것이 좋습니다. 아무리 인덱스가 있다고 해도 건수가 너무 많으면 성능은 안나옵니다. 전체 대상이 아닌 검색 범위를 줄여서 수행하는게 좋구요. 테이블 비정규화도 고려해 볼 수 있습니다.(최상위 코드 추가)