일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 커맨드공부
- 시스템 파악 정리
- 클린코드
- 변수명 짓는법
- Bandit Level 6 → Level 7
- SQLRecoverableException
- 에자일 모형
- 시스템 파악
- was SQLRecoverableException
- was버그
- 나선형 모형
- CSS
- 명령어공부
- java.sql.SQLRecoverableException
- Bandit Level 5
- plsql
- table scan
- avax.net.ssl.SSLHandshakeException:
- 폭포수 모형
- 디미터 법칙
- springboot
- vue
- 인증서만료에러
- 스크럼기법
- pl/sql
- 프로토타입 모형
- Law of Demeter
- mysql 튜닝
- Bandit Level 6
- OpenAPI
- Today
- Total
개발햄비
[DB] 오브젝트 스캔 유형 본문
테이블 스캔 (table scan) 과 인덱스 스캔 (index scan)
1. 테이블 스캔 (table scan)
인덱스를 거치지 않고 바로 디스크에 위치한 테이블 데이터에 접근하는 유형
· 테이블 풀 스캔 (table full scan)
1-1. 테이블 풀 스캔 (table full scan)
인덱스를 거치지 않고 테이블로 바로 직행 , 처음부터 끝까지 데이터를 훑어보는 방식.
조건문 기준으로 활용할 인덱스가 없을때 발생, 성능적으로 부정적
2. 인덱스 스캔 (index scan)
인덱스로 테이블 데이터를 찾아가는 유형
· 인덱스 범위 스캔 , 인덱스 풀 스캔 , 인덱스 고유 스캔, 인덱스 루스 스캔, 인덱스 병합 스캔
2-1. 인덱스 범위 스캔 (Index range scan)
인덱스를 범위 기준으로 스캔한 뒤 스캔 결과를 토대로 테이블 데이터를 찾아가는 방식
Between A and B 구문, < , > , LIKE 등 범위 스캔
좁은 범위를 스캔할 때는 성능적으로 매우 좋음. 넓은 범위는 비효율적.
2-2. 인덱스 풀 스캔 (Index full scan)
인덱스를 처음부터 끝까지 검색하는 방식. 인덱스로 구성된 열 정보만 접근
테이블 풀 스캔 방식보다는 성능 상 유리하지만 , 전 영역을 탐색하기 때문에 조건 넣어 검색하는 것을 지향
2-3. 인덱스 고유 스캔 (Index unique scan)
기본 키나 인덱스로 테이블에 접근하는 방식
인덱스를 사용하는 스캔 방식 중 가장 효율적인 스캔 방법
WHERE 절에 조건을 작성하여 사용.
2-4. 인덱스 루스 스캔 (Index loose scan)
인덱스의 필요한 부분들만 골라 스캔하는 방식. 인덱스 범위 스캔처럼 넓은 범위에 전부 접근하지 않고
WHERE 절 조건문 기준으로 필요한 데이터와 필요하지 않은 데이터 구분 뒤 불필요한 인덱스 키 무시.
GROUP BY, MAX , MIN 함수가 포함되면 작동 , 오름차순으로 정렬된 인덱스에서 최댓값, 최소값 필요할 경우 이에 해당
2-5. 인덱스 병합 스캔 (Index merge scan)
테이블 내 생성된 인덱스들을 통합해서 스캔하는 방식.
결합 union , 교차 intersection 방식, 이들 방식은 모두 실행 계획으로 출력
물리적으로 존재하는 개별 인덱스를 각각 수행하므로, 인덱스 접근 시간 몇 배로 걸림
'개발 > DB' 카테고리의 다른 글
[DB]PL/SQL 프로시저 기초-기본 문법 3정리(%rowtype) (0) | 2019.07.02 |
---|---|
[DB]PL/SQL 연습하기 (0) | 2019.06.27 |
[DB]PL/SQL 프로시저 기초-기본 문법 2 (0) | 2019.06.26 |
[DB]PL/SQL 프로시저 기초-기본 문법 1 (0) | 2019.06.26 |
[DB] PL/SQL 란? (0) | 2019.06.19 |