728x90

옵티마이저 2

[친절한 SQL 튜닝 스터디] 2장. 인덱스 기본

2.1 인덱스 구조 및 탐색 2.1.1 미리 보는 인덱스 튜닝 데이터를 찾는 두 가지 방법은 다음과 같다. 1) 테이블 전체를 스캔한다. 2) 인덱스를 이용한다. 인덱스 튜닝의 두 가지 핵심요소 첫 번째는 인덱스 스캔 과정에서 발생하는 비효율을 줄이는 것이다. 즉. ‘인덱스 스캔 효율화 튜닝’이다. 두 번째 핵심요소는 테이블 액세스 횟수를 줄이는 것이다. 인덱스 스캔 후 테이블 레코드를 액세스할 때 랜덤 I/O 방식을 사용하므로 이를 ‘랜덤 액세스 최소화 튜닝’이라고 한다. SQL 튜닝은 랜덤 I/O와의 전쟁 데이터베이스 성능이 느린 이유는 디스크 I/O 때문이다. 읽어야 할 데이터량이 많고, 그 과정에 디스크 I/O가 많이 발생할 때 느리다. 인덱스를 많이 사용하는 OLTP 시스템이라면 디스크 I/O ..

[친절한 SQL 튜닝 스터디] 1장. SQL 처리 과정과 I/O - 실행계획

구조적, 집합적, 선언적 질의 언어 SQL은 원하는 결과집합을 구조적, 집합적으로 선언하지만, 그 결과집합을 만드는 과정은 절차적일 수밖에 없다. 즉, 프로시저가 필요한데, 그런 프로시저를 만들어 내는 DBMS 내부 엔진이 바로 SQL 옵티마이저다. 옵티마이저가 프로그래밍을 대신해 주는 셈이다. DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전과정을 'SQL 최적화' 라고 한다. SQL 최적화 SQL 파싱 - 사용자로부터 SQL을 전달받으면 가장 먼저 SQL 파서(Parser)가 파싱을 진행한다. SQL 파싱을 요약하면 아래와 같다. 파싱 트리 생성 : SQL 문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성 Syntax 체크 : 문법적 오류가 없는지 확인. 예를 들어, ..

728x90