프로그래밍38 서브쿼리와 뷰(View) 최적화 서브쿼리(Subquery)란?서브쿼리는 다른 SQL문의 일부로 포함되어 실행되는 쿼리입니다. 주로 WHERE, FROM, SELECT 절에서 사용됩니다. 예시:SELECT * FROM employees WHERE department_id = ( SELECT department_id FROM departments WHERE department_name = 'Sales'); 튜닝 관점: 서브쿼리의 위치와 작성 방식에 따라 실행 계획이 크게 달라집니다. 서브쿼리 유형별 성능 특성1. 단일 행 서브쿼리 반환값이 1개인 서브쿼리 (=, , 옵티마이저가 실행 순서를 단순화하기 쉽다 튜닝 포인트 PK나 Unique Index가 걸린 컬럼에서 단일 행 서브쿼리는 매우 빠름2. 다중 행 서브쿼리여.. 2025. 8. 11. 실행 계획(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. 이전 1 2 3 4 ··· 10 다음