Git :)

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5. 친절한 SQL 튜닝
    IT 서적/친절한 SQL 튜닝 2023. 10. 20. 23:11
    인덱스 스캔 효율화

     

     인덱스 선행 컬럼이 등치(=)조건이 아닐 때 생기는 비효율
    • 인덱스 스캔 효율성은 인덱스 컬럼을 조건절에 모두 등치(=) 조건으로 사용할 때 가장 좋다.
      리프 블록을 스캔하면서 읽은 레코드는 하나도 걸러지지 않고 모두 테이블 액세스로 이어지므로 인덱스 스캔 단계에서 비효율은 전혀 없다. 인덱스 컬럼 중 일부가 조건절에 없거나 등치 조건이 아니더라도, 그것이 뒤쪽 컬럼일 때는 비효율이 없다.
    • 반면, 인덱스 선행 컬럼이 조건절에 없거나 부등호, BETWEEN, LIKE와 같은 범위검색 조건이면 인덱스를 스캔하는 단계에서 비효율이 생긴다.

     

     BETWEEN을 IN-LIST로 전환
    • 범위검색 컬럼이 맨 뒤로 가도록 인덱스를 설정하면 좋겠지만 운영 시스템에서 인덱스 구성을 바꾸기란 쉽지 않다.
    • 이럴 때 BETWEEN 조건을 IN-LIST로 바꿔주면 큰 효과를 얻는 경우가 있다.
    • 만약에, IN-LIST 항목이 많아지면 사용하기가 곤란하다. 이럴 경우에는 NL 방식의 조인문이나 서브쿼리로 작성해주면 된다.
    • 추가적으로 IN-LIST 안에 항목이 너무 많아지면 Depth가 비효율적으로 깊어지기 때문에 전환시 주의해야한다.

    'IT 서적 > 친절한 SQL 튜닝' 카테고리의 다른 글

    7. 친절한 SQL 튜닝  (0) 2023.10.21
    6. 친절한 SQL 튜닝  (0) 2023.10.20
    4. 친절한 SQL 튜닝  (0) 2023.10.20
    3. 친절한 SQL 튜닝  (0) 2023.10.20
    2. 친절한 SQL튜닝  (0) 2023.10.20