insert into 8만건 0 2 1,322

by fly [어플리케이션관련] [2014.09.15 19:19:11]


insert into Table1 select * from Table2;

8만건의 데이터를 위와 같은 쿼리로 한번에 insert를 하려는데 속도가 너무 느리고

간혹 time out 이 뜨기도 합니다.

select절은 데이터 건수는 많지만 테이블 조인 없이 테이블 하나만 select하는 아주 단순한 쿼리입니다.

실제 쿼리를 SQLGAte2010에서 실행하면 10초밖에 걸리지 않는데 자바 서비스에서 호출하여 실행하면

속도가 너무 느리거나 time out 이 뜨는데 혹시 원인을 아시는분 계신지요?

by 부쉬맨 [2014.09.15 23:45:41]

insert 전에 소스를 확인하시기 바랍니다.

그 로직전에 다른 DML 작업으로 트랜잭션이 처리되지않은 상태로

진행하면서 생기는 문제 일 수 있습니다.

 


by 아발란체 [2014.09.16 09:22:52]

락(v$locked_object)이나 오픈커서(V$OPEN_CURSOR) 상태 확인해보시고

정상적으로 실행되고 있는 것이라면, 아래와 같이 설정을 변경하여 입력해보는 것도 좋을 것 같습니다.

- 입력 대상 테이블 인덱스타 제약키 비활성화

- 로그 기록 비활성화 / ALTER TABLE [TABLE_NAME] NOLOGGING

- INSERT /*+ APPEND */ INTO [TABLE_NAME] SELECT * FROM [TABLE_NAME]

 

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