실행 계획에 출력되는 table 칼럼의 값은 데이터를 읽어온 테이블을 의미한다.

 

FROM 절이 없이 실행이 되는 쿼리는 테이블이 입력되지 않는데 이런 경우는 어떻게 될까? table 칼럼에 NULL 값이 들어온다.

 

table 칼럼에 간혹 <derived N> 처럼 표기되는 경우도 있는데 이렇게 <> 로 감싸진 경우에는 임시 테이블을 의미한다.

  • <derived N> 에서 의미하는 N 은 실행 계획에 있는 id 칼럼의 값을 의미한다. 해당 id 값을 가진 SELECT 절로부터 파생된 임시 테이블이라는 뜻이다.

 

(id, selected_type, table) 칼럼 정도를 이용해서도 나름 실행 순서를 예측해볼 수 있다. 예시로 다음 실행 계획을 보자:

  • 실행 계획 첫 번째 행에서 table 칼럼을 보면 <derived2> 라고 되어있다. 이것으로 보아 id 칼럼의 값이 2인 실행 계획의 행이 먼저 실행되고 이로 인한 임시 테이블을 참고하고 있다는 사실을 알 수 있다. 
  • 그리고 첫 번째 행과 두 번째 행의 id 칼럼이 같은 것으로 보아 조인을 하는 작업인 걸 알 수 있다. 이 경우에는 위의 행이 드라이빙 테이블이고 아래의 행이 드리븐 테이블이 되서 처리된다.

 

+ Recent posts