안녕하세요.
오라클 데이터베이스 조회시에 속도 영향을 받아 느려집니다.
CPU : Intel 8core * 2 , MEM : 64GB
테이블용량 : 20G , ROW 수 : 65457640
select * from (select rownum rn, A.* from 테이블명 A where rownum <= 16364410) where rn > 0 ;
select * from (select rownum rn, A.* from 테이블명 A where rownum <= 32728820) where rn > 16364410 ;
select * from (select rownum rn, A.* from 테이블명 A where rownum <= 49093230) where rn > 32728820 ;
select * from (select rownum rn, A.* from 테이블명 A where rownum <= 65457640) where rn > 49093230 ;
자바 jni방식으로 start,end 값을 전달하여 20G 데이터를 스키마가 다른 테이블로 이관하는 작업입니다.
자바 process는 독립적으로 실행하고 있습니다.
select - insert는 c-> oci를 사용하고 있습니다.
DB 관리툴을 이용하여 각각 시간을 체크했을때
11초 - 0 ~ 16364410
22초 - 16364410 ~ 32728820
33초 - 32728820 ~ 49093230
43초 - 49093230 ~ 65457640 소요됩니다.
그런데 각각 독립적으로 실행한 SQL의 처리결과는 11초정도가 아닌 40초정도 후에 select가 완료되어 fetchnext를 진행합니다.
뿐만아니라 관련없는 다른 테이블을 검색했을 경우에도 SQL이 select중에는 시간이 많이 걸립니다.
CPU(34%정도) 나 MEM는 그렇게 많이 사용하고 있진 않는데 select중에 다른테이블인데도 영향을 많이 받습니다.
CPU 사용도 90%이상까지 올리고 테이블간 간섭없이 추출-이관이 왜 안될까요~~
|