관리 메뉴

나만의공간

SQL 실행계획(Explain) 해석 / 읽는법 본문

DB/Oracle

SQL 실행계획(Explain) 해석 / 읽는법

밥알이 2022. 3. 18. 10:09

MSA 개발방법이 적용되면서 SQL에 대한 의존도가 예전에 비해 많이 없어지기는 했습니다.
그러나, Application으로만 운영되는 시스템은 없고, NO-SQL DB들에 의해 RDB에 의존도가 적어 졌다고 해도 중요 업무 시스템은 RDB를 여전히 많이 사용합니다.

개발자라면 DB를 잘 이해하여 Application을 만들어야 운영시 문제도 없습니다.
DB 쿼리를 만든 후 실행계획(Plan)을 항상 보는 습관, Plan을 해석하는 습관도 가져야합니다.

SQL Plan을 해석하는 방법을 정리해 볼려고 합니다.

PLAN 보는법

  1. 위에서 아래로 내려가면서 제일 먼저 읽을 위치 찾기
  2. 내려가는 과정에서 같은 들여쓰기가 있으면, 무조건 위에서 아래 순으로 읽기
  3. 같은 레벨에 들여쓰기된 하위 스텝이 존재하면, 가장 안쪽으로 들여쓰기 된 스텝을 시작으로 상위 스텝으로 읽기

예제

위 이미지에 있는 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