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 사용 시 복구가 어렵다는 점을 고려해야 함
SQLD에서 점수를 가르는 건 어려운 이론보다 NULL 처리, 조인 조건 위치, 윈도우 함수의 동작 같은…
AI 이미지 생성 도구의 폭발적 보급으로 그래픽·콘텐츠 디자이너 일감이 실제로 줄고 있습니다. 어떤 직군이 먼저…
전기차 시장이 배터리 싸움에서 소프트웨어 전쟁으로 전환됐다. 테슬라의 AI·데이터 해자 vs 현대차의 SDV 전략, 진짜…
어제 미국에서 9월 생산자물가지수(PPI)가 나왔는데 숫자가 꽤 거칠었습니다. 그런데 간밤 뉴욕증시 3대 지수는 모두 올랐습니다.…
가계대출이 오랜만에 줄었다는 소식에 대출 문턱이 낮아지는 거냐고 묻는 분들이 많습니다. 금융당국이 10월 15일 발표한…
어제 코스피가 하루에 7% 넘게 빠졌다는 소식, 아침에 확인하고 놀라신 분들 많으실 텐데요. 그런데 밤사이…