Direct Path I/O는 Oracle이 데이터를 디스크에서 읽거나 디스크에 쓸 때, 버퍼 캐시(Buffer Cache)를 거치지 않고 직접 데이터 파일에 접근하는 방식입니다. 주로 대용량 데이터 로드, Direct Path Insert, 병렬 처리에서 사용되며, 기존 I/O보다 성능이 뛰어납니다.
✅ Direct Path I/O 주요 특징
INSERT /*+ APPEND */ 등)에서 사용됨| 항목 | Direct Path I/O | Conventional (Buffered) I/O |
|---|---|---|
| 데이터 처리 방식 | 데이터 파일에 직접 쓰기 | 버퍼 캐시(BUFFER CACHE) 사용 |
| 속도 | 빠름 (병렬 지원) | 상대적으로 느림 |
| Redo Log | 최소화 가능 (NOLOGGING 사용 시) | 항상 발생 |
| Undo 사용 | 최소화됨 | 일반적인 DML 수준 |
| 트랜잭션 ROLLBACK | APPEND 사용 시 불가 | 가능 |
| 병렬 처리 | 가능 | 기본적으로 단일 프로세스 |
Direct Path I/O는 다음과 같은 작업에서 주로 사용됩니다.
INSERT /*+ APPEND */)NOLOGGING 사용 시)ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ APPEND PARALLEL(t, 4) */ INTO target_table t
SELECT * FROM source_table; APPEND를 사용하면 버퍼 캐시를 거치지 않고 데이터를 테이블에 저장SQL*Loader DIRECT=TRUE)DIRECT=TRUE 옵션을 사용하면 Direct Path I/O를 수행sqlldr userid=user/password control=control.ctl direct=true SELECT /*+ PARALLEL */)SELECT /*+ PARALLEL(emp, 4) */ * FROM emp; ALTER TABLE PARALLEL)_serial_direct_read 활성화)ALTER TABLE my_table NOLOGGING; NOLOGGING을 사용하면 장애 발생 시 데이터 복구가 불가능하므로 주의ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ APPEND PARALLEL(sales, 8) */ INTO sales
SELECT * FROM sales_backup; ALTER TABLE sales PARALLEL 8; _serial_direct_read 히든 파라미터를 조정하여 Serial Direct Path Read 활성화ALTER SESSION SET "_serial_direct_read"=true; LOGGING을 유지하거나 백업 필요DELETE 또는 TRUNCATE로 제거해야 함ALTER INDEX REBUILD;를 수행하여 인덱스를 다시 활성화해야 함✅ Direct Path I/O는 대량 데이터 로드, 병렬 쿼리, Direct Path Insert에서 뛰어난 성능을 제공하며, 특히 DSS/DW 환경에서 강력한 성능 최적화를 가능하게 함
❗ 하지만 Rollback이 불가능하고, SGA(Buffer Cache)를 활용할 수 없으며, NOLOGGING 사용 시 복구가 어렵다는 점을 고려해야 함
1. 타입스크립트 개요 타입스크립트(TypeScript)는 마이크로소프트(Microsoft)가 개발한 자바스크립트(JavaScript)의 상위 집합(Superset) 언어입니다.즉, 자바스크립트에 정적 타입(Static Type)을 추가하고,…
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…