Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Vue 알아보기
- python
- MYSQL
- Spring Batch
- 애드센스 수익
- 도커
- Spring Batch 강의
- gradle
- Spring
- scrapy
- spring Annotation
- docker mysql
- IntelliJ
- 미국 배당주
- JDK1.3
- Python 기본편
- docker
- 티스토리 광고 수익
- spring boot 시작
- Vue 배우기
- Vue
- AES256
- Vue 강의
- 젠킨스
- 미국주식
- docker 명령어
- intelliJ plugin
- apache log4j
- 구글 애드센스 수익
- python 기초
Archives
나만의공간
SQL 실행계획(Explain) 해석 / 읽는법 본문
MSA 개발방법이 적용되면서 SQL에 대한 의존도가 예전에 비해 많이 없어지기는 했습니다.
그러나, Application으로만 운영되는 시스템은 없고, NO-SQL DB들에 의해 RDB에 의존도가 적어 졌다고 해도 중요 업무 시스템은 RDB를 여전히 많이 사용합니다.
개발자라면 DB를 잘 이해하여 Application을 만들어야 운영시 문제도 없습니다.
DB 쿼리를 만든 후 실행계획(Plan)을 항상 보는 습관, Plan을 해석하는 습관도 가져야합니다.
SQL Plan을 해석하는 방법을 정리해 볼려고 합니다.
PLAN 보는법
- 위에서 아래로 내려가면서 제일 먼저 읽을 위치 찾기
- 내려가는 과정에서 같은 들여쓰기가 있으면, 무조건 위에서 아래 순으로 읽기
- 같은 레벨에 들여쓰기된 하위 스텝이 존재하면, 가장 안쪽으로 들여쓰기 된 스텝을 시작으로 상위 스텝으로 읽기
예제
위 이미지에 있는 Plan으로 순서를 기재 하면 아래와 같이 해석이 됩니다.
1번 수행 -> 2번 수행 -> 3번 수행 -> 4번 수행 -> 5번 수행 -> 6번 수행 -> 결과 리턴
PLAN 용어
PLAN에 보이는 용어에 대한 의미 입니다.
- Cost
-. 쿼리를 수행함에 있어 사용된 자원이나, 작업의 단위를 나타냅니다. 적을 수록 쿼리가 더 효율적이겠죠
-. 단, 어쩔수 없이 Full Scan을 해야 하는 쿼리는 의미가 없을 수도 있습니다. - Cardinality
-. 행 집합에서 행의 수를 표시 합니다. 행 집합은 기본 테이블, 뷰, 조인이나, GROUP BY의 결과 입니다.
-. 행 집합을 의미하니 적게 나타날수록 SQL이 빠를 수 있습니다.
개발자라면 DB 또한 잘 이해하고 설계도 해야 하니 PLAN 해석법을 꼭 익혀 보세요.
'DB > Oracle' 카테고리의 다른 글
오라클 설치 Windows (0) | 2015.07.07 |
---|
Comments