본문 바로가기

분류 전체보기195

실행 계획(Execution Plan) 분석 실행 계획이란 SQL 문을 실행할 때 데이터베이스가 어떤 경로로 데이터를 읽고 처리할지를 단계별로 나타낸 설계도입니다. SQL 튜닝에서는 실행 계획을 읽는 능력이 성능 개선의 출발점입니다. 실행 계획의 확인 방법DBMS마다 실행 계획을 확인하는 명령어와 툴이 다릅니다.1. OracleEXPLAIN PLAN FOR ... + SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)SET AUTOTRACE ON (SQL*Plus)SQL Developer의 "Execution Plan" 탭2. MySQLEXPLAIN SELECT ...;EXPLAIN FORMAT=JSON SELECT ...;3. PostgreSQLEXPLAIN SELECT ...;EXPLAIN (ANALYZE, BUFFERS) .. 2025. 8. 10.
옵티마이저(Optimizer)의 이해 SQL 옵티마이저는 데이터베이스에서 SQL 문장을 실행할 때, 가장 효율적인 실행 계획(Execution Plan)을 선택해주는 핵심 엔진입니다. 쉽게 말해, 같은 SQL이라도 실행 속도를 최대한 빠르게 만들어주는 전략가라고 생각하면 됩니다.옵티마이저의 역할옵티마이저는 사용자가 작성한 SQL 문을 그대로 실행하지 않고, 다음 단계를 거쳐 실행 계획을 수립합니다.1. SQL 파싱(Parsing) SQL 문법을 분석하여 문장이 유효한지 확인테이블, 컬럼, 권한 등을 검사2. 실행 계획 생성(Execution Plan Generation) 가능한 여러 가지 접근 경로(인덱스 사용, 풀 테이블 스캔, 조인 방식 등)를 고려각 경로의 비용(Cost)을 계산3. 최적 실행 계획 선택계산된 비용이 가장 낮은 경로를 .. 2025. 8. 10.
SQL 튜닝 심화: 조인 튜닝 전략 완전 정복 조인 튜닝의 중요성SQL에서 조인(Join)은 여러 테이블을 묶어 데이터를 조회할 때 필수적입니다. 하지만 조인 방식이 잘못되면 응답 속도가 수십 배 느려질 수 있습니다. 따라서 조인 방식의 차이를 이해하고 상황에 맞게 선택하는 것이 핵심입니다.대표적인 조인 방식 3가지1 Nested Loop Join동작 원리외부 테이블(Outer Table)에서 조건에 맞는 행을 하나씩 꺼내고,내부 테이블(Inner Table)에서 해당 값에 맞는 데이터를 찾음장점소량 데이터 조인에 매우 효율적인덱스와 함께 사용 시 성능 극대화단점대량 데이터 조인 시 느림실행 계획 예시 용어NESTED LOOPS2 Hash Join동작 원리두 테이블 중 작은 테이블을 해시 테이블로 만들고,나머지 테이블과 해시 값을 비교해 매칭장점대량.. 2025. 8. 8.
SQL 튜닝 심화: 실행 계획(Execution Plan) 완전 정복 1. 실행 계획이란?실행 계획(Execution Plan)은 데이터베이스가 SQL문을 실행하기 위해 어떤 방식으로 데이터를 읽고 처리할지를 보여주는 설계도입니다. SQL 튜닝에서 실행 계획은 "문제를 찾는 지도"와 같습니다.좋은 실행 계획 → 최소한의 자원으로 빠르게 데이터 검색나쁜 실행 계획 → 불필요한 연산, 대량의 I/O, 느린 응답 속도💡 즉, 실행 계획을 이해하면 왜 내 쿼리가 느린지를 눈으로 확인할 수 있습니다.2. 실행 계획 보는 방법DBMS마다 명령어는 다르지만, 대표적으로 다음과 같이 확인할 수 있습니다. 2.1 OracleEXPLAIN PLAN FORSELECT FROM employees WHERE department_id = 10;SELECT FROM TABLE(DBMS_XPLAN.. 2025. 8. 8.