기존 수행 플랜을 따르지 않는 이유는 무엇인가요? 0 4 3,885

by 윤 [Oracle 기초] ORACLE INDEX hint 실행계획 [2022.05.09 17:54:52]


기존에 문제없이 수행되던 쿼리가 별도의 변경없이 갑자기 수행 시간이 늘어났습니다.

그래서 확인 요청을 드리니 기존과 다른 수행 플랜을 갖는다고 하셨는데요

갑자기 디비의 수행 플랜이 변경되는 경우가 있나요???

 

 

아래는 관련 쿼리입니다

SELECT /*+ USE_MERGE(A,B) INDEX(A CARDIDX) */
    COUNT(*)
FROM
    (SELELCT /*+ INDEX (CARD CARDIDX)*/
        CARD_NO
         , TRANS_YMD
         , STATS_CD
         , GB_ID
         ...
    FROM CARD, ACCOUNT
    WHERE CARD.TRANS_YMD LIKE '202205' || '%'
        AND CARD.STATS_CD = '01'
        AND CARD.GB_ID = ACCOUNT.GB_ID) A
(
....
....)B
WHERE
.......

 

기존에는 /*+ INDEX (CARD CARDIDX)*/  가 없었는데

이번에 문제가 발생하면서 계획한 수행 플랜을 따르기 위해 추가된 힌트입니다.

by 우리집아찌 [2022.05.10 09:34:57]

통계정보 수정되면 플랜 바뀌기도 합니다. 그래서 운영중에 통계정보수집을 잘안하죠.


by 윤 [2022.05.10 10:07:26]

아하 답변 감사합니다 :)


by 마농 [2022.05.10 09:49:16]

1. 데이터량 증가에 따른 통계정보 변경
2. 인덱스 추가, 제약조건 추가 등의 테이블 정보 변경
3. DB 시스템 설정 정보 변경


by 윤 [2022.05.10 10:07:01]

답변 감사합니다!! :D

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