일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- directx
- 백준
- 영속성
- 락
- 자료구조
- 렌더링 파이프라인
- 병행성
- DirectX 12
- 멀티프로세서
- 타입 객체
- Direct12
- 동적계획법
- 컨디션 변수
- 다이나믹 프로그래밍
- DirectX12
- codility
- 다이나믹프로그래밍
- 그리디알고리즘
- 멀티쓰레드
- 파일시스템 구현
- 쓰레드
- 스케줄링
- 운영체제
- 프로그래머스
- I/O장치
- OS
- 그리디 알고리즘
- 알고리즘
- 디자인패턴
- 병행성 관련 오류
- Today
- Total
기록공간
3-4-7장. 쿼리 성능 최적화 - C 본문
쿼리 성능 최적화의 개요
쿼리 성능 최적화는 데이터 입출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화하는 것이다.
-
쿼리 성능을 최적화하기 전에 성능 측정 도구인 APM을 사용하여 최적화 할 쿼리를 선정해야 함
-
최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획을 검토하고 SQL 코드와 인덱스를 재구성
RBO vs CBO
RBO(Rule Based Optimizer) : 규칙 기반 옵티마이저
CBO(Cost Based Optimizer): 비용 기반 옵티마이저
실행 계획(Execution Plan)
실행 계획은 DBMS의 옵티마이저가 수립한 SQL 코드의 실행 절차와 방법을 의미한다.
-
실행 계획은 EXPLAIN 명령어를 통해 확인할 수 있으며, 그래픽이나 텍스트로 표현됨
-
실행 계획에는 요구사항들을 처리하기 위한 연산 순서가 적혀있으며, 연산에는 조인, 테이블 검색, 필터, 정렬 등이 있음
쿼리 성능 최적화
쿼리 성능 최적화는 실행 계획에 표시된 연산 순서, 조인 방식, 테이블 조회 방법 등을 참고하여 SQL문이 더 빠르고 효율적으로 작동하도록 SQL 코드와 인덱스를 재구성하는 것을 의미한다.
SQL 코드 재구성
-
WHERE 절을 추가하여 일부 레코드만 조회하게 함으로써 조회에 들어가는 비용을 줄임
-
WHERE 절에 연산자가 포함되면 INDEX를 활용하지 못하므로 가능한 한 연산자 사용을 자제
-
서브 쿼리에 특정 데이터가 존재하는지 확인할 때는 IN보다 EXISTS를 활용
-
옵티마이저의 실행 계획이 잘못되었다고 판단되는 경우 힌트를 활용하여 실행 계획의 액세스 경로 및 조인 순서를 변경
인덱스 재구성
-
SQL 코드에서 조회되는 속성과 조건들을 고려하여 인덱스를 구성
-
실행 계획을 참고하여 인덱스를 추가하거나 기존 인덱스의 열 순서를 변경
-
인덱스의 추가 및 변경은 해당 테이블을 참조하는 다른 SQL문에도 영향을 줄 수 있으므로 신중히 결정
-
단일 인덱스로 쓰기나 수정 없이 읽기로만 사용되는 테이블의 경우 IOT(Index-Organized Table)로 구성하는 것을 고려
-
불필요한 인덱스 제거
'자격증공부 > 정보처리기사_필기' 카테고리의 다른 글
4-1-2장. 서버 개발 - C (0) | 2020.09.17 |
---|---|
4-1-1장. 개발 환경 구축 - B (0) | 2020.09.17 |
3-4-6장. ORM(Object-Relational Mapping) - B (0) | 2020.09.16 |
3-4-5장. SQL 테스트 - B (0) | 2020.09.16 |
3-4-4장. DBMS 접속 기술 - B (0) | 2020.09.15 |