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. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…
아이폰에서 위치 조작(위치 스푸핑이, 가짜 GPS 위치 설정)은 보안 정책 때문에 안드로이드보다 훨씬 어렵습니다. 하지만…