본문 바로가기

옵티마이저4

[SQLP] 3장. 옵티마이저 원리 - 옵티마이저 1. 옵티마이저 소개가. 옵티마이저란?SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해 주는 DBMS 핵심엔진사용자가 던진 쿼리수행을 위해, 후보군이 될만한 실행계획을 찾는다.딕셔너리에 미리 수집해 놓은 오브젝트 통계정보를 이용해 예상비용을 산정한다.각 실행계획을 비교해서 최저비용을 갖는 하나를 선택한다.나. 옵티마이저 종류1) 규칙기반 옵티마이저Rule-Based Optimizer (RBO). 다른 말로 ‘휴리스틱 옵티마이저’경로별 우선순위로 규칙산정인덱스 구조, 연산자, 조건절 형태가 순위를 결정짓는 주요인2) 비용기반 옵티마이저Cost-Based Optimizer (CBO)비용이란 쿼리를 수행하는데 소요되는 일량 또는 시간레코드 개수, 블록 개수, 평균 행 길이, 칼럼 값의 수, 칼.. 2019. 3. 14.
[SQLP] 1장. 아키텍처 기반 튜닝 원리 - 데이터베이스 I/O 원리 데이터베이스 I/O 원리1. 블록 단위 I/O하나의 레코드를 읽더라도 레코드가 속한 블록 전체를 읽는다.SQL 성능을 좌우하는 가장 중요한 성능지표는 액세스 하는 블록 개수이다.캐시와 데이터 단위 모두 적용된다.2. 메모리 I/O vs 디스크 I/O가. I/O 효율화 튜닝의 중요성디스크 입출력 : 디스크의 액세스 arm이 움직이면서 데이터를 Read Write 하기 때문에 느리다. 메모리 입출력 : 전기적 신호에 불과하기 때문에 빠르다.나. 버퍼 캐시 히트율(Buffer Cache Hit Ratio)버퍼 캐시 효율을 측정하는 지표로서, 전체 읽은 블록 중에서 메모리 버퍼 캐시에서 찾은 비율을 나타낸다.BCHR = (버퍼 캐시에서 곧바로 찾은 블록 수 / 총 읽은 블록 수) x 100다. 네트워크, 파일시.. 2019. 3. 7.
[SQLP] 1장. 아키텍처 기반 튜닝 원리 - SQL 파싱 부하 SQL 파싱 부하1. SQL 처리과정사용자는 구조화된 질의언어 SQL 을 통해 사용자가 원하는 결과집합을 정의DBMS는 사용자의 SQL을 SQL옵티마이저를 통해 실행계획으로 작성해줌가. SQL 파싱SQL을 실행하면 제일먼저 SQL 파서가 SQL 문장에 오류가 없는지 검사문법적 오류가 없다면 의미상 오류가 없는지 검사검사후, 사용자가 발생한 SQL과 실행계획이 라이브러리 캐시에 캐싱되어 있는지 확인캐싱되어 있다면 소프트파싱(SQL과 실행계획을 캐시에서 찾아 곧바로 실행단계로 넘어가는 경우), 캐싱되어 있지 않다면 하드파싱(SQL과 실행계획을 캐시에서 찾지 못해 최적화 과정을 거치고 나서 실행단계로 넘어가는 경우)라이브러리는 해시 구조로 관리됨 (SQL문장을 해시값 만드는 키로 사용)2. 캐싱된 SQL 공유.. 2019. 3. 6.
SQL 최적화 기본 원리 (옵티마이저와 실행계획, 인덱스, 조인수행원리) 옵티마이저와 실행계획옵티마이저디양한 실행 방법들 중에서 최적의 실행 방법을 결정하는 것 규칙기반 옵티마이저 (RBO, Rule Based Optimizer)비용기반 옵티마이저 (CBO, Cost Based Optimizer) R-DB 대부분 비용기반!! 가. 규칙기반 옵티마이저규칙 1. Single row by rowid : rowId를 통해서 테이블에서 하나의 행을 엑세스규칙 4. Single row by unique or primary key : 유일 인덱스(Unique Index)를 통해서 하나의 행을 엑세스 (PK)규칙 8. Composite index : 복합 인덱스에 동등 조건으로 검색 A=1 B=2 우선순위 A+B 더 높음 > A+B+C (A, B가 =조건있기 때문)규칙 9. Single c.. 2019. 3. 4.