2024/09/25 4

[SQLD] 5-3. SQL 최적화 기본 원리 - 조인 수행 원리, Nested Loop Join, Sort Merge Join, Hash Join

A. 조인 개요 1. 두 개 이상의 테이블을 하나의 집합으로 만드는 연산 2. FROM 절에 두 개 이상의 테이블이 나열될 경우 조인이 수행 3. 조인 연산은 두 테이블 사이에서 수행 4. 3개 이상 테이블이 조인될 경우 먼저 수행된 조인 결과와 나머지 테이블 사이에서 조인이 수행됨 5. 테이블 또는 조인 결과를 이용하여 조인을 수행할 때 조인 단계별로 다른 조인 기법을 사용할 수 있음 6. 조인 기법은 두 개의 테이블을 조인할 때 사용할 수 있는 방법 7. Nested Loop Join (NL Join), Sort Merge Join, Hash Join 조인 방식이 존재   B. Nested Loop Join ( NL Join ) 1. 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식 2. 선행 테이..

[SQLD] 5-2. SQL 최적화 기본 원리 - 인덱스 기본, B트리 기반 인덱스 검색, 클러스터형 인덱스, 테이블 스캔, 인덱스 스캔, 스캔 방식 종류

A. 인덱스 1. 검색 성능의 최적화를 위한 객체임 2. 테이블 데이터를 특정 컬럼으로 정렬하여 생성할 수 있는 구조 3. 개수가 많을수록 INSERT, UPDATE, DELETE등과 같은 DML 작업은 성능이 저하 4. UPDATE는 변경 대상 컬럼이 인덱스에 없는 경우 성능에 영향이 없음   B. B트리 기반 인덱스 검색 1단계 : 브랜치 블록의 가장 왼쪽 값이 찾고자 하는 값보다 작거나 같으면 왼쪽 포인터로 이동 2단계 : 찾고자 하는 값이 브랜치 블록의 값 사이에 존재하면 가운데 포인터로 이동 3단계 : 오른쪽에 있는 값보다 크면 오른쪽 포인터로 이동   C. SQL Server의 클러스터형 인덱스 1. 인덱스의 리프 페이지가 곧 데이터 페이지 2. 인덱스 와 테이블이 결합되어 있는 구조 3. 리..

[SQLD] 5-1. SQL 최적화 기본 원리 - 옵티마이저와 실행계획, SQL 처리 흐름도

A. 옵티마이저 정의 1. SQL은 사용자의 요구사항만 기술 2. 처리과정에 대한 기술은 하지 않음 3. 최적의 실행 방법을 결정하는 것이 옵티마이저의 역할 4. 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행 5. 최적의 실행 방법이 실행계획(Execution Plan)   B. 규칙기반 옵티마이저 1. 인덱스 유무와 SQL 문장에서 사용하는 연산자의 종류 그리고 SQL문에서 참조하는 객체의 종류 등을 참조해 실행계획을 생성 2. 인덱스를 이용한 액세스 방식이 전체 테이블 액세스 방식보다 우선순위가 높음 3. SQL순위에서 이용 가능한 인덱스가 존재한다면 엑세스 기법전체 테이블 액세스 방식보다는 항상 인덱스를 사용하는 실행계획을 생성  C. 비용기반 옵티마이저(CBO) 1. 규..

[SQLD] 4-9. SQL 활용 - 예상문제풀이 (Question&Answer)

문제 1. 다음 JOIN의 종류의 설명 중 틀린 것은 무엇인가?① EQUI JOIN은 반드시 PK, FK 관계에 의해서만 성립된다. ② NON-EQUI JOIN은 등가 조건이 성립되지 않은 테이블에 JOIN을 걸어주는 방법이다. ③ OUTER JOIN은 JOIN 조건을 만족하지 않는 데이터도 볼 수 있는 JOIN 방법이다. ④ SELF JOIN은 하나의 테이블을 논리적으로 분리시켜 EQUI JOIN을 이용하는 방법이다.  문제 2. 4개의 테이블로부터 필요한 칼럼을 조회하려고 한다. 최소 몇 개의 JOIN 조건이 필요한가? ① 2개 ② 3개 ③ 4개 ④ 5개  문제 3. 다음 SET 연산자에 대한 설명 중 틀린 것은 무엇인가?① UNION 연산자는 조회 결과에 대한 합집합을 나타내며 자동으로 정렬을 해준..

반응형