by 케를로스 [2015.03.11 15:14:07]
결산쪽 데이터를 찾기위해서
예산 테이블
union all
예산배정 테이블
지출결의테이블
을 합쳐서 order by 부서, 사업과목, 계정과목 으로 정렬을 시켰는데
45000건정도의 데이터를 조회하는데 20초정도 걸립니다.
order by를 사용해도 조회속도를 빠르게 할 수 있는 방법은 없는건가요??
order by 미사용시 1초도 안걸리더라구요..
order by는 전체를 스캔하여 로우를 정렬하는데...
서브쿼리를 사용하시는게 더 빠르지 않을까요??
ORDER BY 넣으면서 실행계획이 달라졌을 것 같네요. 힌트 사용해보세요.
성능저하의 원인이 정렬이라고 하기엔 건수가 너무 적네요. 원인은 다른데 있으나 부분범위 처리로 인해 드러나지 않았던 것이 정렬을 하면서 드러나게 된 것 같습니다. 성능저하의 원인을 찾아보세요. 단순 조회가 아닌 복잡한 로직이 들어간 부분이 없는지? - 사용자 함수 사용이나 서브쿼리 사용 등...