database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 1050 게시물 읽기
No. 1050
Q.대량의 insert문을 빠르게 처리하는 방법?
작성자
양희선
작성일
2008-04-17 13:38
조회수
9,000

안녕하세요.

현재 Cubrid 7.3버젼을 사용하고 있습니다.

 

큐브리드매니저의 질의편집기를 사용하면

200건 정도의 Insert문을 1초도 안되는 시간안에 입력할 수 있는데

현재 제가 작성중인 자바어플리케이션에서 jdbc를 이용해서

For문 루핑을 돌며 insert를 하면 시간이 훨신 더 걸립니다.

 

여러건의 insert질의문을 큐브리드매니저의 질의편집기처럼

빠르게 처리하는 방법을 알고 싶습니다.

 

이 글에 대한 댓글이 총 3건 있습니다.

안녕하십니까.

큐브리드매니저의 질의 편집기는 jdbc방식으로 되어 있습니다.

한문장에 대하여 prepare하고 실행 후 commit하는 형식이나,

다량의 데이터 입력에는 적합한 방식이 아닙니다.

그런데 큐브리드매니저에서 실행하는 것보다 느린다고 하셨는데....

for문에서 connection을 다시 한다던가 기타 로직상의 문제가 아닐까 합니다.

 

참고로 jdbc방식의 다량의 데이터입력을 위해서는 dynamic sql(\"?\")을 사용하고 commit주기를 주는 것이 좋습니다.

 

>안녕하세요.

>현재 Cubrid 7.3버젼을 사용하고 있습니다.

>

>큐브리드매니저의 질의편집기를 사용하면

>200건 정도의 Insert문을 1초도 안되는 시간안에 입력할 수 있는데

>현재 제가 작성중인 자바어플리케이션에서 jdbc를 이용해서

>For문 루핑을 돌며 insert를 하면 시간이 훨신 더 걸립니다.

>

>여러건의 insert질의문을 큐브리드매니저의 질의편집기처럼

>빠르게 처리하는 방법을 알고 싶습니다.

 

허지웅님이 2008-04-17 13:58에 작성한 댓글입니다. Edit

batch insert 방식을 사용하시기 바랍니다.

사용방법은

 

PreparedStatement pstmt = conn.prepareStatement(\"insert into x values(?)\");

for (int i; ..){

  pstmt .setInt(1, i++);

  pstmt.addBatch();

  if( i % 100 == 0) {

           pstmt.executeBatch();

    }

}

pstmt.executeBatch();

 

형태로 addBatch로 질의를 모아서 executeBatch로 일괄 실행합니다.

계속 추가하면 outOfMemory 에러가 나기 때문에

중간에 적절한 건 수에서 executeBatch 해주고 마지막에 한번더 executeBatch를 해주기 바랍니다.

 

 

>안녕하세요.

>현재 Cubrid 7.3버젼을 사용하고 있습니다.

>

>큐브리드매니저의 질의편집기를 사용하면

>200건 정도의 Insert문을 1초도 안되는 시간안에 입력할 수 있는데

>현재 제가 작성중인 자바어플리케이션에서 jdbc를 이용해서

>For문 루핑을 돌며 insert를 하면 시간이 훨신 더 걸립니다.

>

>여러건의 insert질의문을 큐브리드매니저의 질의편집기처럼

>빠르게 처리하는 방법을 알고 싶습니다.

 

손승일님이 2008-04-17 14:08에 작성한 댓글입니다. Edit

기술문서 방에 있는 \"대량의 데이터 입력 방법\"이 도움될지 모르겠네요.

 

http://www.cubrid.com/bbs/view.php?id=tutorail&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=1341&coid=@677|2|5

 

 

>안녕하세요.

>현재 Cubrid 7.3버젼을 사용하고 있습니다.

>

>큐브리드매니저의 질의편집기를 사용하면

>200건 정도의 Insert문을 1초도 안되는 시간안에 입력할 수 있는데

>현재 제가 작성중인 자바어플리케이션에서 jdbc를 이용해서

>For문 루핑을 돌며 insert를 하면 시간이 훨신 더 걸립니다.

>

>여러건의 insert질의문을 큐브리드매니저의 질의편집기처럼

>빠르게 처리하는 방법을 알고 싶습니다.

 

김평철님이 2008-04-17 15:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1053Q.브라우져의 query문을 copy해서 실행 시킬때 [1]
해달
2008-04-18
6716
1052Q.큐브리드 라이센스 관련 질문 [1]
황인식
2008-04-18
6299
1051Q.update시 나오는 에러. [2]
해달
2008-04-17
6796
1050Q.대량의 insert문을 빠르게 처리하는 방법? [3]
양희선
2008-04-17
9000
1049Q.안녕하세요 큐브리드 건의 사항입니다~ [1]
박유나
2008-04-16
6864
1048Q.Cubrid 사용 사례 [1]
김선우
2008-04-16
7138
1046Q.초간단 ASP예제 [1]
이강
2008-04-13
7675
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.077초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다