Oracle FreeList (프리리스트)

Oracle FreeList (프리리스트)

1. FreeList란? FreeList(프리리스트)는 Oracle 데이터베이스에서 새로운 데이터가 삽입될 때 사용할 수 있는 빈 블록 목록입니다.즉, INSERT 작업이 수행될 때, 사용 가능한 공간이 있는 블록을 찾는 역할을 합니다. ✔ FreeList의 역할 2. FreeList 동작 방식 Oracle의 테이블이나 인덱스는 데이터를 저장할 때 블록(Block) 단위로 관리됩니다.새로운 데이터가 삽입될 때, FreeList에서 빈 블록을 먼저 검색하여 데이터를 저장하며, FreeList에 사용 … Read more

Consistent Mode vs. Current Mode in Oracle

Consistent Mode vs. Current Mode in Oracle

Oracle 데이터베이스에서 데이터를 읽고 처리할 때, Consistent Mode(일관성 모드)와 Current Mode(현재 모드) 두 가지 방식이 존재합니다.이 모드는 쿼리의 실행 방식과 데이터 일관성을 유지하는 방법에 따라 결정됩니다. 1. Consistent Mode (일관성 모드) Consistent Mode(일관성 모드)는 쿼리 실행 시점의 일관된 데이터를 제공하는 방식입니다.즉, 쿼리가 시작된 시점의 SCN(System Change Number, 변경 번호) 기준으로 데이터를 반환합니다. ✅ 특징 📌 … Read more

Oracle Index Partitioning (인덱스 파티션)

Oracle Index Partitioning (인덱스 파티션)

Oracle의 Index Partitioning(인덱스 파티션)은 대용량 테이블의 파티션 테이블에 대한 인덱스를 효율적으로 관리하는 기법입니다.테이블이 파티션되어 있으면, 인덱스도 같은 방식으로 파티션하면 성능과 관리 효율이 향상됩니다. 1. 인덱스 파티션의 개념 ✔ 장점 2. 인덱스 파티션의 종류 Oracle은 테이블의 파티션 방식에 따라 인덱스를 다르게 설정할 수 있습니다. (1) LOCAL PARTITIONED INDEX (로컬 파티션 인덱스) 📌 예제: RANGE PARTITIONED TABLE … Read more

Oracle Partitioning (오라클 파티션)

Oracle Partitioning (오라클 파티션)

Oracle Partitioning은 대용량 테이블과 인덱스를 여러 개의 파티션으로 나누어 관리하는 기술입니다. 이를 통해 쿼리 성능 향상, 병렬 처리 최적화, 관리 용이성 개선 등의 장점을 제공합니다. 1. 파티션 개념 2. 파티션 종류 Oracle에서는 여러 가지 파티션 방식을 제공하며, 데이터의 분할 기준에 따라 나뉩니다. (1) RANGE PARTITION (범위 파티션) 📌 예제: 주문일(order_date)을 기준으로 분할 CREATE TABLE orders … Read more

DIRECT PATH I/O (Oracle Direct Path I/O)

DIRECT PATH I/O (Oracle Direct Path I/O)

1. 개요 Direct Path I/O는 Oracle이 데이터를 디스크에서 읽거나 디스크에 쓸 때, 버퍼 캐시(Buffer Cache)를 거치지 않고 직접 데이터 파일에 접근하는 방식입니다. 주로 대용량 데이터 로드, Direct Path Insert, 병렬 처리에서 사용되며, 기존 I/O보다 성능이 뛰어납니다. ✅ Direct Path I/O 주요 특징 2. Direct Path I/O vs. Conventional I/O 비교 항목 Direct Path I/O Conventional … Read more

DIRECT PATH INSERT (Oracle)

DIRECT PATH INSERT (Oracle)

1. 개요 Direct Path Insert는 Oracle에서 데이터를 삽입할 때 기존 테이블의 블록을 재사용하지 않고, 새로운 데이터 블록을 직접 할당하여 삽입하는 방식입니다. 일반적인 INSERT는 기존 블록에 데이터를 추가하지만, Direct Path Insert는 새로운 블록을 예약하여 데이터베이스에 바로 기록합니다. 🔹 Direct Path Insert 주요 특징 2. Direct Path Insert 문법 (1) 기본 문법 INSERT /*+ APPEND */ INTO … Read more

병렬 INSERT in Oracle

병렬 INSERT in Oracle

Oracle에서는 병렬 INSERT를 통해 데이터를 빠르게 삽입할 수 있습니다. 일반적인 INSERT 작업은 단일 세션에서 수행되지만, 병렬 처리(Parallel Processing)를 이용하면 여러 개의 프로세스가 동시에 데이터를 삽입하여 성능을 향상시킬 수 있습니다. 1. 병렬 INSERT 개념 병렬 INSERT는 여러 개의 병렬 프로세스를 활용하여 데이터를 삽입하는 기법입니다. Oracle은 데이터를 블록 단위로 나누고 여러 개의 프로세스가 동시에 데이터를 쓰도록 하여 … Read more

키 보존 테이블 (Key-Preserved Table) in Oracle

키 보존 테이블 (Key-Preserved Table) in Oracle

1. 키 보존 테이블이란? 키 보존 테이블(Key-Preserved Table) 은 View(뷰)에서 특정 테이블의 기본 키(Primary Key)가 유지되는 테이블을 의미합니다. (뷰에 rowid를 제공하는 테이블)즉, 뷰를 통해 SELECT, INSERT, UPDATE, DELETE 작업을 수행할 때, 기본 키(Primary Key)가 그대로 유지되는 테이블을 말합니다. 📌 주요 개념: 2. 키 보존 테이블의 필요성 Oracle에서 뷰(View)를 사용하면 데이터를 읽기 전용(READ-ONLY) 으로 볼 수 … Read more

Lock Escalation (락 에스컬레이션) in Oracle

Lock Escalation (락 에스컬레이션) in Oracle

1. Lock Escalation 개요 Lock Escalation(락 에스컬레이션) 은 데이터베이스에서 트랜잭션이 획득한 잠금(Lock)의 범위가 증가하여 더 큰 범위를 잠그는 과정을 의미합니다.즉, 많은 개별 행(row) 잠금을 유지하는 대신, 일정 임계치를 초과하면 테이블 단위 잠금(table-level lock)으로 변경하여 시스템 성능을 최적화합니다. 💡 Oracle에서는 자동 Lock Escalation이 발생하지 않으며, MS SQL Server나 DB2에서는 기본적으로 지원됨.즉, Oracle은 기본적으로 Row-level Lock을 유지하며, … Read more

Scalable Sequence (오라클18c)

Scalable Sequence (오라클18c)

Oracle 18c에서 Scalable Sequence(확장 가능한 시퀀스)는 대량의 트랜잭션이 발생하는 환경에서 시퀀스 생성의 성능을 향상시키기 위해 도입된 기능입니다. 이는 특히 다중 노드 RAC(Real Application Clusters) 환경이나 병렬 트랜잭션이 많은 OLTP(Online Transaction Processing) 시스템에서 성능 병목을 줄이는 데 도움이 됩니다. 🚀 Scalable Sequence란? Oracle에서 시퀀스는 NEXTVAL을 호출할 때 단일 시퀀스 객체를 공유하는 방식으로 동작합니다. 하지만, 다중 세션에서 … Read more