쿼리가 느려질 때, 단순히 “데이터가 많아서”라고 결론짓고 있지는 않나요? DBeaver의 실행 계획 기능을 활용하면 어느 구간에서 병목이 발생하는지 정확히 짚어낼 수 있습니다.
1. 실행 계획(Execution Plan)이란?
데이터베이스가 쿼리를 실행하기 위해 수립하는 ‘최단 경로 전략’입니다. 인덱스를 제대로 타고 있는지, 불필요하게 전체 테이블을 다 뒤지고 있는지(Full Scan) 확인할 수 있습니다.
2. DBeaver에서 실행 계획 보는 법
DBeaver 쿼리 편집기에서 쿼리를 작성한 후 다음 중 하나를 실행하세요.
- 단축키:
Ctrl+Shift+E - 버튼: 왼쪽 도구 모음의 ‘Explain Execution Plan’ 아이콘 클릭
3. Visual Explain 읽는 법
DBeaver는 실행 계획을 트리 구조의 그래프로 보여줍니다. 여기서 주의 깊게 봐야 할 포인트는 다음과 같습니다.
- Node Color/Icon: 빨간색 아이콘이나 ‘Full Table Scan’ 문구가 보인다면 인덱스를 타지 못하고 있다는 경고입니다.
- Cost (비용): 숫자가 높을수록 해당 단계에서 자원을 많이 소모한다는 뜻입니다.
- Rows: 해당 단계에서 처리하는 예상 행 수입니다. 실제 데이터 양보다 너무 크다면 쿼리 조건(WHERE)을 검토해야 합니다.
4. 튜닝 시나리오 예시
- Full Scan 발견: 특정 컬럼으로 필터링하는데
Full Scan이 뜬다면 해당 컬럼에 인덱스가 있는지 확인합니다. - Using Temporary / Using Filesort: 정렬(
ORDER BY)이나 그룹핑(GROUP BY) 시 이 메시지가 뜬다면 메모리가 아닌 디스크를 사용하여 매우 느려질 수 있습니다. 복합 인덱스를 고려해야 합니다.
정리
가벼운 데이터 확인은 Sequel Ace에서 하더라도, 성능이 중요한 쿼리를 짤 때는 반드시 DBeaver의 Visual Explain을 켜는 습관을 들여보세요. 텍스트로만 보던 EXPLAIN 결과보다 훨씬 직관적으로 튜닝 포인트를 잡을 수 있습니다.