데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
아무것도 모르는 생초짜인데, 밑의 쿼리문 WHERE절 조건에 컬럼 5개 정도 더 있는데
이 상황에서 처리속도 올리려면 어떻게 해야하나요...
SELECT * FROM (
SELECT /*+PARALLEL(A 8)(B 8)*/
A.ACNO
,WRS_C
,DPZ_AC_STSC
,DPZ_AC_SBJC
,REP_CUSNO
,ANW_DT
,AMN_BRC
,AC_WRS_ATTR_NO
FROM TB_A A, TB_B B
WHERE
A.ACNO = B.ACNO
AND AMN_BRC BETWEEN NVL(:str_br,AMN_BRC) and NVL(:end_br,AMN_BRC)
AND ANW_DT BETWEEN NVL(:str_dt,ANW_DT) and NVL(:end_dt,ANW_DT)
AND STSC = '1'
AND WRS_C = NVL(:wrs_c,WRS_C)
ORDER BY ANW_DT DESC
)
WHERE
ROWNUM <= 10
Comment 1
-
축구선수
2018.03.15 16:56
오라클이네요...
우선 검색 조건 항목에 인덱스가 설정 되어있다면 where절에 nvl를 사용 안하시는게 좋습니다.
그리고 만약 인덱스가 조건절 컬럼중에 선택도를 확인하신 다음에 인덱스를 설정해 주시면
검색속도가 빨라지실 겁니다.