sqld

자격증/SQLD

[SQLD] 트랜잭션 Isolation Level

Transaction Isolation Level (트랜잭션 격리 수준) 트랜잭션 격리 수준은 동시에 여러 트랜잭션이 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것이다. Isolation Level 종류 Isolation Level 설명 Dirty Read Non-Repeatable Read Phantom Read 고립성 (안정성) 동시성 Read Uncommited 커밋되지 않은 데이터도 읽을 수 있다 O O O 낮다 높다 Read Committed 커밋된 정보만 읽는다 X O O 중간 중간 Repeatable Read 하나의 트랜잭션에서는 하나의 스냅샷만 사용한다 X X O 중간 중간 Serializable Read 시에 DML 작..

자격증/SQLD

[SQLD] SQL 최적화 기본 원리 - 조인 수행 원리

조인 기법 조인 기법 설명 NL Join OLTP의 목록 처리 업무에 많이 사용 Sort Merge Join DW(Data Warehouse) 등의 데이터 집계 업무에 많이 사용 Hash Join NL Join (Nested Loot Join) NL Join은 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행한다. 조인 컬럼에 적당한 인덱스가 있어서 자연조인(Natural Join)이 효율적일 때 유용하며, Driving Table(선행 테이블)의 조인 데이터 양이 큰 영향을 주는 조인 방식이다. Sort Merge Join Sort Merge Join은 조인 컬럼을 기준으로 데이터를 정렬하여 조인을 수행한다. NL Join은 주로 랜덤 액세스 방식으로 데이터를 읽은 반면 Sort Me..

자격증/SQLD

[SQLD] SQL 최적화 기본 원리 - 인덱스 기본

인덱스 (Index) 인덱스는 조회만을 위한 오브젝트로, 기본적인 목적은 검색 성능의 최적화이다. 하지만 INSERT, UPDATE, DELETE 등과 같은 DML 작업은 인덱스를 함께 변경해야 하기 때문에 오히려 성능이 느려질 수 있다. 트리 기반 인덱스 DBMS에서 가장 일반적인 인덱스는 B-트리(Blance Tree) 인덱스이다. B-트리 인덱스는 브랜치 블록(Branch Block)과 리프 블록(Leaf Block)으로 구성되며, 브랜치 블록 중 가장 상위에 있는 블록을 루트 블록 (Root Block)이라고 한다. 브랜치 블록은 분기를 목적으로 하고 리프블록은 인덱스를 구성하는 컬럼의 값으로 정렬된다. 일반적으로 OLTP(Online Transaction Processing) 시스템 환경에서 가..

자격증/SQLD

[SQLD] SQL 최적화 기본 원리 - 옵티마이저와 실행계획

옵티마이저 (Optimizer) 옵티마이저는 사용자가 질의한 SQL 문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다. 이러한 최적의 실행 방법을 실행계획(Execution Plan)이라고 한다. 규칙기반 옵티마이저(RBO, Rule Based Optimizer) 규칙기반 옵티마이저는 규칙(우선 순위)을 가지고 실행계획을 생성한다. 규칙기반 옵티마이저 규칙 *순위가 숫자가 낮을수록 높은 우선 순위이다 규칙 1, Single row by rowid ROWID를 통해 테이블에서 하나의 행을 액세스 하는 방식이다. ROWID는 행이 포함된 데이터 파일, 블록 등의 정보를 가지고 있기 때문에 다른 정보를 참조하지 않고도 바로 원하는 행을 액세스할 수 있다. 하나의 행을 액세스하는 가장 빠른 방법이다. 규칙..

숭코기
'sqld' 태그의 글 목록