아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
싹싹한솔개174
싹싹한솔개17419.07.23

오라클 DB에서 Where절에 DECODE문 쓰면 Index 안타나요?

오라클 DB에서 Where절에 DECODE문 쓰면 Index 안타나요?

DECODE문 쓰니까 PK Index도 안타는것 같아서요.

성능이 이슈가 되는데 이런 경우 어떻게 해결할 수 있을까요?

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • DECODE 결과를 따로 저장해두고 그 컬럼으로 SELECT하면 됩니다.

    SELECT a, b, c FROM t WHERE DECODE(d, ...) = ...

    이런 쿼리가 있다면

    DECODE(d, ...)를 예를 들어 d_라는 컬럼을 만들어서 저장한다면

    SELECT a, b, c FROM t WHERE d_ = ...

    쿼리는 이런 식으로 쓰고

    d_ 컬럼에 인덱스를 걸어준다면 d_ 컬럼의 인덱스를 탈 수 있겠죠


    ※ d를 업데이트 할 때 반드시 d_도 같이 업데이트 해야 정합성이 깨지지 않습니다.