본문 바로가기
반응형

Database27

패스트캠퍼스 SQL튜닝캠프 3일차 - 인덱스 스캔 효율 8. (4) Index Skip Scan을 이용한 비효율 해소Index Skip Scan을 통해 인덱스를 좀 더 효율적으로 사용하는 경우와 방법을 진행해보겠습니다.고객번호, 판매월, 판매구분, 판매금액으로 이루어진 월별고객판매집계 테이블이 있다고 가정합니다. 이때 판매구분 + 판매월을 기준으로 조회해야 할때 어떻게 개선할 수 있을지 확인해보겠습니다.케이스1. 인덱스: 판매구분 + 판매월인덱스를 판매구분 + 판매월로 잡아 수행해보겠습니다.인덱스 : 판매구분 + 판매월 select count(*) from 월별고객판매집계 t where 판매구분 = 'A' and 판매월 between 200801 and 200812실행계획을 수행해보면 ConsistencyRead(LogicalRead)는 281이 나옵니다.... 2017. 8. 23.
패스트캠퍼스 SQL튜닝캠프 2일차 - 인덱스 향상 5. 테이블 Random Access 부하 인덱스를 쓰는 이유는 RowId를 찾기 위함 RowId는 HDD에 있음 RowId를 해시 함수로 돌려 Clustering Factor 테이블 블럭들이 인덱스 정렬 순으로 얼마나 잘 정렬되어있는지에 대한 지표 6. 테이블 Random 액세스 최소화 튜닝 인덱스가 많을 때의 단점 Command(명령 : 등록/수정/삭제)시 인덱스 변경이 필요하여 시간이 많이 소모 인덱스 저장 장소가 필요하여 저장소 용량이 많이 필요하게 됨 옵티마이저가 인덱스를 보고 실행계획을 작성하는데, 이때 인덱스가 많으면 많을수록 옵티마이저는 잘못된 실행계획을 생성할 확률이 높다. 인덱스는 3개 이하를 권장한다. 인덱스 컬럼 추가로 해결하기 문제상황) 인덱스 : deptno + job selec.. 2017. 7. 30.
패스트캠퍼스 SQL튜닝캠프 1일차 - 인덱스 구조와 스캔 방식 1주차1. 인덱스의 구조인덱스 == 정렬인덱스는 크게 해시 인덱스와 B+Tree 인덱스가 있습니다. 해시 인덱스는 키 값을 해시값으로 변경후, 해시값+값의 구조를 얘기합니다. 해시계산의 경우 데이터 양에 의존하지 않기 때문에 데이터 양이 늘어도 계산량(O(1))은 변경되지 않는다는 장점이 있습니다. 하지만 아래와 같은 경우에 전혀 사용할 수 없습니다.가격이 10,000원 이하의 선물을 찾고 싶다.제목이 "Final"로 시작하는 게임 리스트를 찾고 싶다.최신순으로 정렬된 값을 찾고 싶다.해시 인덱스의 이런 단점을 해결하고자 B+Tree 인덱스 구조가 있습니다.B+Tree 인덱스(출처 : 구루비 위키)Root Node와 Branch Node에 표기된 lmc는 Left Most Child를 뜻합니다. (Lea.. 2017. 7. 16.

728x90
반응형