SQL개발자

자격증/SQLD

[SQLD] DROP vs TRUNCATE vs DELETE

DROP TRUNCATE DELETE DDL DDL (일부 DDL 성격 가짐) DML ROLLBACK 불가능 ROLLBACK 불가능 COMMIT 이전 ROLLBACK 가능 AUTO COMMIT AUTO COMMIT 사용자 COMMIT 용량 모두 반환 테이블 최초 생성 시 용량만 남기고, 모두 반환함 용량 반환하지 않음 테이블의 정의 자체를 완전히 삭제함 테이블을 최초 생성된 초기상태로 만듬 데이터만 삭제 💡 TRUNCATE TABLE은 테이블 자체가 삭제되는 것이 아니고, 해당 테이블에 들어있던 모든 행들이 제거되고 저장 공간을 재사용 가능하도록 해제한다. 테이블 구조를 완전히 삭제하기 위해서는 DROP TABLE을 실행하면 된다. 📌 참고자료 https://www.youtube.com/watch?v=7..

자격증/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는 행이 포함된 데이터 파일, 블록 등의 정보를 가지고 있기 때문에 다른 정보를 참조하지 않고도 바로 원하는 행을 액세스할 수 있다. 하나의 행을 액세스하는 가장 빠른 방법이다. 규칙..

숭코기
'SQL개발자' 태그의 글 목록