sql loader 질문드립니다 0 3 959

by 사비타 [2018.05.12 16:07:11]


매번 도움받고 있는 구루비 전문가님들께 감사드리며

지난번에 문제를 해결하고 다시 한번 질문드립니다.

sql loader에서 conventional path 방식보다 direct path 방식이 훨씬 빨라서 그 방법으로 사용하려 하는데요

두개 파일을 두개의 ctr파일과 두개의 쉘파일을 이용하여 하나의 테이블에 동시 insert

를 하려고 하니 기존 conventional path 에서는 동시 insert가 되었는데

direct path에서는 안되더라구요 ㅠㅠ

그래서 parallel 옵션을 허용하니 되긴 하는데..

여기서 질문드립니다.

 

1. parallel 옵션을 설정하기 전에는 direct path 건 conventional  path 건 둘다

몇건이 insert 되었는지 실행도중 출력이 되었는데 parallel 옵션을 설정하니 안나오더라구요

해결 방법이 있나요?

2. parallel option을 주면 과부하가 많이 걸리거나 다른 문제가 발생하지는 않는지요?

 insert 해보니 몇건들어갔는지 출력만 안될뿐 잘 insert 되긴 하는데..

한가지 찝찝한게 waring 메세지가 뜨더라구요.. 

3. parallel option을 주지않고 direct path 방식으로 하나의 테이블에 두개 파일을

동시에 insert 할수는 없는건가요?

4. "Direct path load Engine을 사용해 오라클의 버퍼 캐시를 거치지 않고 디스크에 직접 쓰기 때문에

Conventional path 방식에 비해 부하 및 상호 간의 경쟁 없이 빠르게 수행된다" 라고 하는데

유닉스에서 top으로 cpu 사용률을 보니 direct path 방식도 부하가 있긴 하더라구요

이 부하를 줄일 수 있는 방법은 없는거겠죠??

 

항상 감사드리며 답변 부탁드리겠습니다.

by 신이만든지기 [2018.05.14 11:00:16]

1. 다른분께 답변을 패스...

2. 병렬로 처리한다는 말은, 여러개의  CPU를 사용해서 데이터를 입력하겠다는 말이므로, 직렬로 처리할 때보다 CPU나 디스크등의 부하가 더 걸리는 것은 당연한 일입니다.

3. 다이렉트 패스방식에선 병렬조건 없이 동일 테이블에 두개 파일을 동시 입력 안된다고 합니다.

4. 당연합니다. 컨벤션패스 방식에 비해 다이렉트패스 방식에서는 오라클 내부의 여러가지 작업이 최소화되기 때문에 상대적으로 부하가 적다는 것이지,  cpu 자원 등을 사용하는 것은 막을 수 없습니다.


by 사비타 [2018.05.14 11:38:13]

답변 감사드립니다!

미처 깜박잊고 질문하지 못한게 있는데요

SQL*Loader-281: Warning: ROWS parameter ignored in parallel mode.

direct path parallel 로 실행했을때만 위와같은 경고가 뜨는데

문제없을까요..


by 신이만든지기 [2018.05.14 12:01:17]

네. 문제없습니다.

다이렉트 패스 방식 중 병렬옵션에서는 rows 파라미터를 지원하지 않아, 해당 옵션을 무시했다는 의미입니다. 

해당 컨트롤 파일에서  rows를 제거하시면 해당 경고가 안나올 겁니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입