728x90 dap자격증10 [DAP자격증] 과목5 - 옵티마이저(Optimizer)란? 1. 옵티마이저(Optimizer)란?**옵티마이저(Optimizer)**는 데이터베이스 관리 시스템(DBMS)에서 SQL을 실행할 때 최적의 실행 계획(Execution Plan)을 선택하는 역할을 하는 핵심 엔진이야.SQL이 실행되면, DBMS는 다양한 실행 방법을 고려할 수 있어. 예를 들어:인덱스를 사용할지, 풀 테이블 스캔을 할지Nested Loop Join을 할지, Hash Join을 할지병렬 처리를 활용할지, 단일 처리할지이러한 선택을 자동으로 결정하여 가장 효율적인 실행 계획을 선택하는 역할을 하는 것이 옵티마이저야.2. 옵티마이저의 종류옵티마이저는 SQL을 최적화하는 방식에 따라 두 가지 방식으로 나뉘어:1️⃣ 규칙 기반 옵티마이저(Rule-Based Optimizer, RBO)2️⃣ 비.. 2025. 3. 27. [DAP자격증] 과목5 - SQL 통계정보 보는법 (Parse, Execute, Fetch) SQL 성능 개선을 위해 SQL 통계 정보를 확인할 때, CALL의 Parse, Execute, Fetch 단계와 COUNT, ROWS 값이 어떤 의미를 가지는지 정확히 이해하는 것이 중요해.1. SQL Call의 3가지 단계: Parse, Execute, Fetch데이터베이스에서 SQL을 실행하면 3가지 주요 단계를 거쳐.✅ 1) Parse (파싱 단계)SQL 문을 데이터베이스가 해석하고 실행 계획을 생성하는 과정주요 작업:SQL 문법 체크객체(테이블, 인덱스 등) 유효성 검증실행 계획(Execution Plan) 생성 또는 재사용 (Hard Parse vs. Soft Parse)🔹 Hard Parse vs. Soft ParseHard Parse: 처음 실행되는 SQL이거나 실행 계획을 새로 만들어야.. 2025. 3. 27. [DAP자격증] 과목5 - 오버헤드(Overhead)란? 오버헤드(Overhead)란?**오버헤드(Overhead)**는 어떤 작업을 수행할 때 추가적으로 발생하는 비용(자원, 시간, 메모리 등)을 의미해.즉, 실제 작업을 수행하는 데 직접적인 기여를 하지 않지만, 부가적으로 필요한 것들이야.1. 오버헤드의 종류✅ 성능(연산) 오버헤드프로그램이나 시스템이 어떤 작업을 수행하는 데 필요한 추가적인 연산 비용예시:가상화 환경에서 CPU가 가상 머신을 관리하는 데 드는 연산 비용DB에서 쿼리 실행 시 인덱스를 유지하거나 캐시를 관리하는 데 드는 연산✅ 메모리 오버헤드프로그램이 실행될 때 추가적으로 소비하는 메모리예시:Python에서 동적 메모리 할당 시 발생하는 추가적인 메모리 사용량DB에서 트랜잭션을 관리하기 위한 로그 저장 공간✅ 네트워크 오버헤드데이터를 전송할.. 2025. 3. 27. [DAP자격증] 5과목 - B-Tree 인덱스 vs. Bitmap 인덱스 B-Tree 인덱스 vs. Bitmap 인덱스데이터베이스에서 검색 성능을 최적화하기 위해 B-Tree 인덱스와 Bitmap 인덱스가 사용돼. 두 인덱스는 각각의 특성과 용도가 다르므로, 차이점을 이해하는 것이 중요해.1. B-Tree 인덱스 (Balanced Tree Index)B-Tree 인덱스는 대부분의 데이터베이스 시스템에서 기본적으로 사용되는 인덱스 구조야.🔹 B-Tree 인덱스의 특징트리 구조를 기반으로 균형(Balanced) 유지데이터가 계속 삽입, 삭제, 수정되어도 인덱스가 균형을 유지하여 성능이 일정함각 노드가 여러 개의 키 값을 저장할 수 있어 검색, 삽입, 삭제 시 성능이 안정적범위 검색(Range Scan)에 최적화되어 있음🔹 B-Tree 인덱스의 동작 방식루트 노드에서 시작하여 .. 2025. 3. 27. [DAP자격증] 문제 풀기 (조인에 관하여) 문제 9. 다음 조인 기법에 대한 설명으로 옳은 것은? 1. Sort-Merge Join은 Join하려는 두 집합을 Join Column으로 정렬하여 Sorted - List를 만들고 병합 하는 Join 기법으로, OLTP System에서 활용도가 높다. 2. Hash J oin은 대용량의 데이터 Join 시에 Sort-Merge Join이나 Nested-Loop Join보다 효율적이다. 3. Nested-Loop Join은 Driving Table(Outer Table)과 1nner Table 양쪽 모두 인텍스가 없을 때 효율적인 Join 기법이다. 4. Nested-Loop Join에서 두 Table 간의 Join 시 Driving Table(Outer Table) 과 1nner Table의 결정은 .. 2025. 3. 27. [DAP자격증] 5과목 - Latch(래치)와 경합(Contention)에 관하여 질문 : "객체 생성 이나 변경은 Latch 경합이 발생할 수 있으므로 주의해야 한다." 는 문장에 대한 설명.Latch와 경합에 관하여 정리 : Latch(래치)와 경합(Contention)에 대한 설명객체 생성이나 변경 시 Latch 경합(Latch Contention)이 발생할 수 있으므로 주의해야 한다는 말은,여러 프로세스(스레드)가 동시에 데이터베이스 객체를 변경하려고 할 때 "Latch"라는 잠금 메커니즘이 경쟁 상태를 일으켜 성능 저하가 발생할 수 있다는 의미입니다.1. Latch(래치)란?**래치(Latch)**는 데이터베이스 내부에서 공유 자원(버퍼, 데이터 페이지, 인덱스 등)에 대한 짧은 기간 동안의 보호를 제공하는 경량 잠금(Lightweight Locking) 메커니즘입니다.데이터.. 2025. 3. 27. 이전 1 2 다음 728x90