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
운영게시판
최근게시물
Sybase Q&A 2431 게시물 읽기
No. 2431
대용량 데이터 삽입
작성자
임태근(alflso)
작성일
2009-03-05 14:40
조회수
9,787

약 500만건의 데이터를  bcp out in 하는데 약 4시간 걸리는데요(unitex 사용을 위해)

이것을 좀더 빠르게 할 수 있는 방법이 없을 까요?

예를 들어 동일한 신규 테이블을 만들고, 
select * into new_table from old_table

하면 되는데 문제는 one tran 이라 로그가 full 나더라구요(trunc, true 로  세팅)

where 절에 조건을 주면 되는 데 조건이 애매해서 그러네요

10만건씩 읽어서 삽입하고, 다시 10만건 읽어서 삽이하고 하면 좋을 것 같기도 한데

여러 고수님들의 의견을 구합니다.

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

BCP가 select into 보다 빠릅니다. 물론 FAST BCP 일때의 얘기구요.

500만건 BCP in out 이면 인덱스랑 트리거가 없으면,

아무 옵션을 안주고, 대략 2~5분 정도 소요될 것으로 예상되는데요. 보통 BCP out에 초당 5만에서 10만 row 정도 소요되거든요. 패킷 옵션을 설정하면, 더 나올 거에요. BCP 속도를 높이기 위해 DB max packet size를 조정하시는 게 좋을 것 같네요. 그리고 BCP시에 -A 옵션으로 패킷 size를 설정 할 수 있습니다.

 

그리고,

select into 역시 minimal log만을 남기기 때문에 로그 full이 나왔다는 게 좀 이해하기 힘드네요.

혹시 새 테이블을 만드신 후, insert into new_table select * from old_table 로 작업하셔서 로그 full이

발생된게 아닌지 ....

select * into new_table from old_table 이면 테이블을 만들 필요가 없을뿐더러, minimum logged

로그만을 남기기 때문에 로그를 거의 안 쓸텐데요.

 

제가 125만건 테이블을 bcp in-out 하는 경우 소요시간 2분20초정도.

select into 할경우 3분 정도 소요가 되네요. insert into select 구문은 시도 안해봤습니다.

많이 걸릴께 뻔하니까요.

 

Text 컬럼 타입이나 , Image 컬럼 타입이 있어서 느려질 수는 있겠네요... -T 옵션으로 무지무지 큰값을

주셨다면, BCP in 시에 소요 시간이 더 걸릴겁니다.

다다님이 2009-03-05 16:46에 작성한 댓글입니다.
이 댓글은 2009-03-05 16:48에 마지막으로 수정되었습니다. Edit

10만건씩 읽어 10만건씩 삽입하려면 -b 100000 을 option 으로 주면 됩니다.

그러면 10만건씩 commit 일 발생 합니다. (10만건씩 tran 이 발생)


500만건 4시간 정말 이해가 안되네요...


그리고 -A16384 로 packet size를 증가하시는 것도 약간의 도움이 됩니다.


index 가 걸려 있는 테이블에 bcp in 보다  index를 모두 drop 후 bcp in 한후 

index를 생성하시는 것이 훨씬 빠릅니다.

dd님이 2009-03-05 23:21에 작성한 댓글입니다. Edit

BCP 에서 팻킷 사이즈는 TEXT 및 image 타입에만 영향을 주는것으로 알고 있습니다.

실제 테스트에서도 속도 변화를 보지 못했구요.


-b 옵션은 10 만건씩 넣겠다는건데.. 여기서 10만 이라는 숫자는 

해당 환경에서 실제로 테스트 해보셔야지만 최적의 수치가 나올 것을 생각 됩니다.

select * 처럼 데이터를 추출시에는 bcp 와 다르게 ct library 로 추출이 되기 때문에

시간이 많이 느립니다. 참고하세욤

이철희(paekun)님이 2009-07-08 10:36에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2434조건의 우선순위 [2]
karerina
2009-03-10
8345
2433시스템정보를 이용해서 테이블생성 스크립트작성 방법 좀 알려주세요(초보) [2]
지젤
2009-03-09
9236
2432간단한 튜닝 관련 질문입니다. [1]
AZA
2009-03-05
8007
2431대용량 데이터 삽입 [3]
임태근
2009-03-05
9787
2430bcp in 그리고 중단 rollback [2]
권환희
2009-03-05
8289
2429Sybase에 오라클의 Materialized View와 같은것이 있나요? [2]
너무몰라서..
2009-03-04
7719
2428인덱스 크기는 어느정도가 좋을까요? [1]
karerina
2009-03-04
8261
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다