• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

서버 프로세스의 i/o 접근 방법?

21.04.18 17:18 작성 조회수 97

0

안녕하세요.
강의를 듣는 중 질문이 생겨 문의 남깁니다.

서버 프로세스에서 COnventional Path I/O를 사용할지

Direct Path I/O를 사용하지 결정은 

SQL 쿼리에서 하는건가요? 

아니면 같은 SQL쿼리라도 시스템이 알아서 판단하고 선택하는 건가요?

답변 1

답변을 작성해보세요.

1

안녕하십니까,

일반적으로 Direct path I/O를 수행하는 유형이 있는데, 보통은 시스템이 알아서 해줍니다만 SQL에 Hint 절을 이용해서 Direct path I/O를 해줄 수도 있습니다.

1. 아래와 같이 Insert 절에 append hint 를 사용하면 buffer pool에 insert시 사용한 block을 올리지 않고 direct path i/o를 수행합니다.

Insert /*+ append */ into table_a select * from tab_b;

대부분은 Oracle DBMS가 Direct path I/O를 자동적으로 결정합니다.

1. 대용량의 테이블 Full scan시

- 테이블을 full scan한다고 무조건 Direct path i/o를 수행하지는 않지만 오라클이 실행 계획 수립 시 여러 사항들을 조합하여 direct path i/o를 결정합니다.

2. Parallel Query 수행시에는 무조건 Direct Path I/O 입니다.

3. SQL에서 sorting(ordrer by), group by등으로 temporary 성 segmentation을 read/write할 시 Direct path I/O

4. export/import 또는 sql*loader에서 direct_io option 사용시.

감사합니다.

Ducky님의 프로필

Ducky

질문자

2021.04.18

감사합니다!