오라클 쿼리 튜닝 (해결) 0 5 1,947

by 뉴비 [2022.11.20 18:27:51]


.
by 우리집아찌 [2022.11.21 07:42:44]
-- 인덱스는 u_exam_o 컬럼이 선행되어있어야합니다.

SELECT /*+ leading(uif) index(uif 인덱스명 ) */

uif.EXM_CD,

SUM(CASE WHEN uec.U_ANSWER IS NOT NULL THEN 1 ELSE 0 END) as total_a,

SUM(CASE WHEN uec.CORRECT_YN = 1 THEN 1 ELSE 0 END) as total_c,

.

.

.

 


by 마농 [2022.11.21 09:56:01]

총 건수만 적으셨는데, 조건에 맞는 건수 정보도 적어 주세요. (테이블 별로)
uif 와 qq 를 먼저 크로스 조인 한 후 uec 와 조인하는 방안도 고려해 볼 수 있습니다.(스타 조인)
case 문의 else 0 을 제거하고 sum 을 count 로 바꾸는 것이 좋습니다.


by 뉴비 [2022.11.21 12:14:01]

답변 감사합니다. 조인방식 바꾸고 count로 정리 했는데 속도가 20초정도 줄었습니다.

그리고 조건에 맞는 건수정보는 uec = 약 1500만건 uif = 약 38만건 qq = 1900건입니다. 여기서 더 속도를 줄이는 것이 가능할까요??


by 마농 [2022.11.21 13:31:49]

건수 정보를 보면 인덱스 스캔이 효용이 있을까? 하는 생각이 드네요.
20초가 줄은 이유가 count 때문인지? 조인방식 변경 때문인지?
바꾼 쿼리와 실행계획 보여주세요.


by 마농 [2022.11.21 17:29:04]

이곳은 지식을 공유하는 공간입니다.
문제 해결 결과를 추가로 공유하는 것이 좋은데... 오히려 질문을 지워버렸네요.
이 질문과 댓글은 질문자 뿐만 아니라 비슷한 고민을 하는 다른 이들에게도 도움이 되는 정보일 것입니다.
혼자만의 문제 해결이 아닌, 다른 사람에 대한 배려가 필요합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입