본문 바로가기

Database3

[4] 인덱스 확장기능 사용법 이 글은 [친절한 SQL 튜닝] 을 학습하고 정리한 글입니다. 3번 게시물까지는 Index Range Scan 중심으로 다루었는데 Index Full Scan, Index Unique Scan, Index Skip Scan, Index Fast Full Scan 등 인덱스 스캔 방식은 다양합니다. 하나하나 알아보겠습니다. Index Range Scan B* Tree의 가장 일반적인 액세스 방식인데요 인덱스 Root에서 Leaf 까지 값을 비교하며 수직적으로 탐색한 후에 Leaf에서부턴 필요한 범위만 스캔합니다. 인덱스를 Range Scan 하려면 선두 컬럼을 가공하지 않은 상태로 조건절에서 사용해야 합니다. 중요한 점은 인덱스 스캔범위와 테이블 액세스 횟수를 얼마나 줄일 수 있냐로 결정됩니다. selec.. 2020. 11. 2.
[2] 인덱스 구조 이 글은 [친절한 SQL 튜닝] 을 학습하고 정리한 글입니다. 인덱스 튜닝에 대해 살펴보기 이전에, 인덱스 구조를 통해 핵심 원리를 짚고 넘어갑시다. 인덱스는, 해당 자료를 찾기 편하게끔 데이터와 개별된 구조를 만들어 놓은 것입니다. 데이터베이스 테이블에서 데이터를 찾는 방법은 1. 테이블 전체를 스캔하거나 2. 인덱스를 이용하는 방법 위 두가지밖에 없기 때문에, 인덱스는 SQL 튜닝에서 가장 먼저 학습해야 할 부분입니다. 인덱스 튜닝의 핵심 요소 인덱스는 큰 테이블에서 소량 데이터를 검색할 때 사용합니다. 일반적인 Online Transaction Processing 시스템에서는 소량 데이터를 주로 검색하므로 인덱스 튜닝이 매우 중요합니다. 인덱스 튜닝의 핵심은 크게 두가지로 나뉘는데 첫번째는 인덱스 .. 2020. 10. 30.
[1] SQL 처리 과정과 I/O 이 글은 [친절한 SQL 튜닝] 을 학습하고 정리한 글입니다. 1.1 SQL 파싱과 최적화 SQL은 집합적이고 선언적인 질의 언어이기 때문에, 질의를 통해 결과 집합을 얻게 됩니다. 그런 결과 집합을 얻기 위해서는 절차적인 과정이 필요한데, 이 과정을 SQL 옵티마이저가 대신해줍니다. "SQL 최적화" 란 DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정을 의미합니다. 실제 최적화 과정을 세분화 하면 다음과 같습니다 1. SQL 파싱 - SQL Parser가 파싱을 수행합니다 2. SQL 최적화 - Optimizer가 미리 수집한 시스템 및 오브젝트 통계정보를 바탕으로 다양한 실행경로를 생성한 후 비교하여 가장 효율적인 방식을 선택합니다. (데이터베이스 성능의 핵심) 3.. 2020. 10. 20.