인프런 커뮤니티 질문&답변
7-8 질문
작성
·
16
0

현재 실행 계획이
강의랑 반대라서 질문 남겨봅니다
드라이빙 테이블이 de 로 나오는 이유가 뭘까요 ?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
kkkkkk님, 드라이빙 테이블이 de로 나오는 이유에 대해 설명드리겠습니다. SQL 실행 계획에서 드라이빙 테이블이 결정되는 것은 여러 요인에 의해 좌우됩니다. 보통 옵티마이저는 쿼리를 효율적으로 실행하기 위해 가장 적은 비용을 드는 경로를 선택하게 됩니다. 여기서 비용은 단순히 실행 시간이 아닌, 데이터 접근 및 처리에 소모되는 비용을 의미합니다.
드라이빙 테이블은 조인이 수행되는 순서를 결정하는데, 기본적으로 옵티마이저는 다음과 같은 요소들을 고려하여 드라이빙 테이블을 선택합니다:
1. 통계 정보: 테이블의 데이터 수, 인덱스의 유무, 카디널리티 등.
2. 필터 조건: WHERE 조건에 의해 더 많은 데이터를 거를 수 있는 테이블.
3. 인덱스 사용 여부: 보다 효율적으로 데이터를 접근하기 위해 인덱스를 사용하는 테이블.
쿼리에서 드라이빙 테이블인 de가 선택된 이유는, 해당 테이블이 인덱스를 잘 활용하여 적은 수의 데이터를 빠르게 필터링할 수 있기 때문일 수 있습니다. 따라서, 옵티마이저는 dept_emp_mapping 테이블을 먼저 접근하여 조인을 수행할 데이터 범위를 줄이고, 그 다음으로 manager 테이블과의 존재 조건을 확인하는 방식으로 쿼리를 실행할 수도 있습니다.
만약 실행 계획이 강의와 다르게 나온다면, 데이터의 규모나 인덱스의 유무, 혹은 통계 정보의 차이 때문일 가능성이 높습니다. 오히려 실행 계획이 다른 경우는 데이터베이스 내 다른 변수에 의해 발생할 수 있으므로, 인덱스와 통계 정보의 차이를 점검해보시는 것도 추천드립니다.
추가로 실행 계획을 더 이해하기 위해 EXPLAIN 명령어를 활용하여 세부적인 실행 계획을 확인하고 분석하는 것도 좋은 방법입니다.
이미지 원본 URL을 참고하셔서 더욱 깊이 있는 조사에도 도움이 되었으면 합니다: 여기.
더 궁금하신 점이 있으시다면 언제든지 질문해주세요!





