공부하는가비
[SQLD] SQL최적화의 기본 원리 요약 본문
목차
1. 옵티마이저실행계획
2. 인덱스기본
3. 조인수행원리
1.옵티마이저 실행계획
규칙기반옵티마이저 | 비용기반옵티마이저 |
- 우선순위를 가지고 실행계획생성 - 비교적 쉽게예측가능 - 인덱스유무,SQL연산자 또는 객체 - 인덱스를 이용한 엑세스 방식이 테이블 엑세스 방식보다 순위가 높다 -조인시 조인컬럼 인덱스 유무 중요 -우선순위 가장 높은것 (single row by rowid) : 로우아이디로 다른행 참조하지않고 하나의행 엑세스하는 가장 빠른 방법 |
- 비용(소요시간,자원)이 가장 적게드는 SQL실행 - 테이블,인덱스,컬럼 다양한객체 통계정보 사용 - 실행계획의 예측 및 제어가 어렵다 ①질의변환기:SQL문 용이한 형태로변환 ②대한계획: 다양한 대안계획생성,연산의 적용순서 변경,연산방법변경 (대안이 많아지면 수행시간 길어지므로 대안계획수 제한) ③비용예측기:집합의크기,분포도예측 |
*실행계획
SQL에서 요구한 사항을 처리하기 위한 절차와 방법
어떠한 순서로 실행할지를 결정하는 작업
각 처리방법마다 실행시간이 다를 수 있다.
옵티마이저는 최적의 실행계획을생성해준다.
조인순서, 조인기법, 엑세스기법, 최적화정보, 연산, 질의처리 예상비용
*인덱스
테이블기반으로 선택적으로 생성
검색성능 최적화 목적으로 INSERT, DELETE 속도가 느려질 수 있다. (UPDATE 부하가 없다)
컬럼의 순서는 SQL실행 성능과 관계있다.
-트리기반 인덱스
Root, Brench(분기목적), leaf-block으로 구성
-CLUSTERED
인덱스키 컬럼순 정렬, 리프페이지가 곧 데이터페이지
-BITMAP
하나의 인덱스키 엔트리가 많은 포인터 가짐
*전체 테이블스캔
-SQL에 조건이 존재하지 않는경우
-SQL에 사용가능한 인덱스가 존재하지 않는경우
-옵티마이저의 취사선택
-병렬처리방식인경우
*인덱스스캔
-인덱스 유일 스캔 : 유일인덱스로 단 하나 추출 (중복X)
-인덱스 범위 스캔 : '=' 이 주어지지않은경우 결과가 없으면 한건도 반환하지 않을 수 있다
-인덱스 역순 스캔 : 최대값 쉽게 찾을 수 있다. 내림차순으로 데이터 읽는다.
*조인 수행 원리
① NL JOIN
-중첩반복문과 유사하게 수행
-처리범위 좁음 (소량조인)
-랜덤 엑세스 방식
② Sort JOIN
-넓은 범위 데이터 처리
-동등조인, 비동등 조인 가능
-정렬작업 부담
-스캔방식
③ Hash JOIN
-CPU작업위주 처리
-NL조인의 랜덤엑세스 , Sort 조인의 정렬작업 부담 보완
'낰낰 > 자격증' 카테고리의 다른 글
2022 3회차 정보처리기사 실기 (0) | 2022.08.22 |
---|---|
[2022 정보처리기사 필기 1과목] 소프트웨어 설계 (0) | 2022.06.14 |
2022 3회차 정보처리기사 필기합격 (0) | 2022.06.13 |