개별 프로세스 입장에서 대용량 데이터를 읽고 쓸 때 버퍼 캐시 를 경유하지 않고 곧바로 데이터 블록을 읽고 쓸 수 있는 기능.
데이터를 정렬할 때 PGA 에 할당되는 Sort Area 를 이용하는데
정렬할 데이터가 부족하면 TEMP 을 이용한다. 이 경우 Direct I/O 을 사용한다.
(관련 Wait : direct path write temp , direct path read temp )
병렬쿼리로 Full Scan 하는 경우 Direct Path 사용.(Direct Path Read 병렬쿼리를 실행하면 병렬 이상의 수행속도가 나옴)
병렬로 DML 을 수행하거나 Direct path Insert 방식으로 데이터를 insert 하는 경우
발생한다 . (관련 Wait : Direct Path Write )
Conventional insert
Freelist를 통해 데이터를 삽입할 블록을 할당.
Freelist를 조회하면서 Random 액세스 방식으로 버퍼 캐시에서 해당 블록을 찾고,
없으면 데이터파일에서 읽어 캐시에 적재한 후에 데이터를 삽입하므로
대량의 데이터를 insert 할 때 매우 느리다.
Direct Path Insert
Freelist를 참조하지 않고 테이블 세그먼트 또는 각 파티션 세그먼트의 HWM 바깥
영역에 데이터를 순차적으로 입력한다
Direct Path Insert에서는 Redo와 Undo 엔트리를 로깅하지 않도록 옵션을
줄 수도 있어 훨씬 빠르다.
Direct Path I/O http://cafe.naver.com/ocmkorea/book2025209/10180