반응형

쿼리 속도 향상

    [Oracle] 쿼리 속도 향상 시키기 (Feat. 좌변을 가공하지 않기)

    [Oracle] 쿼리 속도 향상 시키기 (Feat. 좌변을 가공하지 않기)

    스크립트를 작성할 때, '좌변을 가공하지 말라'는 이야기를 들었는데 왜 그럴까요? 아래와 같은 경우에 DB 인덱스를 사용할 수 없다고 합니다. 인덱스 컬럼이 비교되기 전에 변형이 일어나는 경우 부정형으로 조건을 기술(not)한 경우 인덱스 컬럼이 NULL로 비교되는 경우 옵티마이저가 필요에 따라 상기 적용원칙을 준수했음에도 불구하고 특정 인덱스의 사용을 취사선택함으로써 사용되지 않는 경우 좌변을 가공하게 되면 인덱스를 사용할 수 없으므로 DB 컬럼을 가공하지 않고, 상수 부분을 가공해서 사용하도록 작성하는 것이 바람직합니다. [ 예시 ] 1) 올바르지 않은 예시 (좌변을 가공) 아래와 같이 좌변의 PROC_DATE를 가공하여 사용하게 되면 200 row(s) fetched - 507ms (+64ms) -..

반응형