728x90
데이터베이스 엔진은 쿼리를 수행할 때 어떤 방식을 사용하고 어떤 순서로 쿼리를 수행할지에 대한 계획은 세우게 되는데, 이것을 쿼리 실행 계획(Query execution plan) 또는 쿼리 플랜(Query plan)이라고 부른다.
Heroku에서 사용하는 PostgreSQL에서 EXPLAIN 이라는 SQL구문을 이용하여 쿼리 플랜을 확인할 수 있다.
그리고, 성능 분석을 할 때는 보통 ANALYZE 문까지 붙여서 실행 시간을 포함한 구체적인 실행 계획을 분석한다.
PostgreSQL은 다음 5가지 스캔 방식을 사용한다.
- Sequential Scan
- Index Scan
- Index Only Scan
- Bitmap Scan
- TID Scan
EXPLAIN ANALYZE
SELECT * FROM user WHERE name = '홍길동';
QUERY PLAN
Index Scan using user_name_idx on "user" (cost=0.03..4.03 rows=1 width=820) (actual time=0.019..0.020 rows=1 loops=1)
Index Cond: ((name)::text = '홍길동'::text)
Planning Time: 0.668 ms
Execution Time: 0.207 ms
728x90
'DBMS > SQL Basic' 카테고리의 다른 글
[SQL 기본] DDL (Data Definition Language) - 2. CREATE TABLE (0) | 2015.11.19 |
---|---|
[SQL 기본] DDL (Data Definition Language) - 1. 데이터 유형 (0) | 2015.11.19 |
[SQL 기본] 관계형 데이터베이스 개요 (0) | 2015.11.17 |