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

ILM (Information Lifecycle Management) in Database

ILM (Information Lifecycle Management) in Database

Information Lifecycle Management (ILM)은 데이터베이스에서 데이터의 수명 주기에 따라 저장, 보관, 이동, 삭제를 자동화하는 관리 기법입니다.즉, 자주 사용하는 데이터(핫 데이터)는 빠른 스토리지에, 오래된 데이터(콜드 데이터)는 저비용 스토리지로 이동하여 성능과 비용을 최적화하는 전략입니다. 1. ILM의 개념 ILM은 데이터의 가치와 접근 빈도에 따라 데이터 관리 전략을 자동화합니다. ✔ ILM 주요 기능 2. ILM 주요 단계 (데이터 수명 … 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

NO_UNNEST 힌트 in Oracle

NO_UNNEST 힌트 in Oracle

1. NO_UNNEST 힌트란? NO_UNNEST 힌트는 서브쿼리(Subquery)의 변환(UNNESTING) 최적화를 방지하는 데 사용됩니다. NEST의 사전적 의미는 무언가를 “포개다, 겹치다”의 의미로 중첩을 의미합니다. 서브쿼리에 unnest 힌트를 사용하게 되면, 서브쿼리를 펴서 메인쿼리와 조인으로 풀어내겠다는 의미로 보시면 됩니다. no_unnest는 중첩을 풀지 않고 필터조건으로 풀어내는 것으로 보면 됩니다. ※ /*+ unnest */ : 서브쿼리를 unnesting 함으로써 JOIN 방식으로 최적화하도록 유도 /*+ … 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