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
운영게시판
최근게시물
Oracle Q&A 40976 게시물 읽기
No. 40976
구오라클에서 신오라클로 마이그레이션시 userid를 변경하는데 속도 질문입니다
작성자
허윤정(xhdll)
작성일
2015-10-20 10:52ⓒ
2015-10-20 15:01ⓜ
조회수
8,777

구디비에서 신디비로 데이터를 이관해야하는데 

unload 로 데이터를 내릴 것이고 load로 신디비로 올립니다. 

그런데 한건한건의 userid를 다 신규ID로 특정테이블(new_acc)에서 찾아서 변경해 주어야하는데요

1. unload시에 new_acc에서 셀렉을 해서 바꿔 텍스트로 내리고 그냥 sqlload 하는 방법

2. unload시에는 그냥 내리고 load로 다시 신서버로 올릴때 new_acc에서 셀렉해서 바꿔서 올리는 방법

 

두가지 방법 중 어느 방법이 더 빠른지 알고싶습니다.

unload로 구DB에서 내릴때 바꾸면

"

 

unload to a_table.unl

select mail, (select new_userid from new_acc where new_acc.old_userid=a_table.userid) from a_table;  

"

요런형태 이고

 

sqlload로 신DB로 올릴때 바꾸면

"

 load data

infile a_table.unl

append --insert, replace, truncate

into table a_table

fields terminated by '|'

-- null or non_existent, TRAILING NULLCOLS를 생략하면 Load가 되지 않습니다.

trailing nullcols

(

mail char,

userid char, (   userid "select userid from new_acc where userid = :userid" )

)

"

이런형태 일것으로 보입니다. 

 

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

동일한 상황에 대한 경험이 없어서 맞을지는 모르겠지만, 제 생각으로는 unload시에 두 테이블을 join을 해서 파일을 생성하는 방법이 속도가 빠를것 같습니다. 대신 a_table과 new_acc테이블은 full table scan/hash join 을 한다는 가정에서요. (아마 subquery대신 join을 쓰는 방식으로 쿼리를 약간 수정해야 할듯.)

이유는 다량의 row를 join할때는 hash join이 nested loop join에 비해 성능이 훨씬 좋기 때문이구요. 두번째 방법의 경우는 구조상 loading시에 a_table의 row수 만큼 new_acc테이블을 index를 통해서 접근해야 해서 (nested loop join과 동일한 상황) 첫번째 방법에 비해 훨씬 많은 시간이 (I/O에) 소비될겁니다.

고서진(longflat)님이 2015-10-20 19:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40979특정 시점 이후 데이터가 수정된 테이블 찾는 방법을 알고싶습니다. [1]
한동훈
2015-10-21
8909
40978카운트 함수 여러개 사용 어떻게 하나요(서브쿼리없이) [1]
어려워
2015-10-20
8846
40977쿼리 좀 부탁합니다. [1]
땡구리
2015-10-20
8980
40976구오라클에서 신오라클로 마이그레이션시 userid를 변경하는데 속도 질문입니다 [1]
허윤정
2015-10-20
8777
40975파티션을 힌트로 사용하려는데.... [2]
임금펭귄
2015-10-20
8768
40973[쿼리]연속된 숫자 쿼리하는 방법은? [1]
최병련
2015-10-16
9039
40972테이블 두개 사용해서, 중복라인 생성할수 있는 방법이 있을까요? [1]
고래밥
2015-10-16
8847
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다