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 31533 게시물 읽기
No. 31533
대량의 데이터를 비교 처리 할때
작성자
freegigs
작성일
2007-08-03 14:12
조회수
2,684

안녕하세요..

혼자 판단하기에 좀 어려운게 있어서 질문을 드릴려고 합니다.

약 50만건 정도의 텍스트 데이터를 디비에 입력을 하는 문제인데.
이 데이터가.. 30분단위로 들어오게 됩니다.

문제는.. 텍스트 데이터에 중복여부나.. 수정 여부, 신규  같은 체크 컬럼이 없어서
전체 비교를 통해서.. 신규,업뎃,  구분을 해야 하는데.. 
가장 빠른 방법이 무었일까 해서.. 질문들 드립니다.


고수님들의 고견 부탁 드리겠습니다..

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

아래 내용들 중 텍스트 파일을 직접읽어 처리하는 방법은 array processing도 반드시 함께 고려해야 합니다.

글만 가지고는 자세한 상황을 알 수 없으나, 

일반적인 방법은 select 후 결과에 따라 insert하거나 update하는 방법이겠지요...;
하지만 이는 데이터를 저장하기 위해 반드시 2회의 SQL수행횟수를 가집니다.

혹 버전이 9i이상이라면 MERGE문을 검토 해 보세요...;
도움이 될 수도 있겠구요...;

신규/수정 중 한쪽으로 매우 많이 편중된 처리라면,

예를 들어 데이터들 중 신규가 90% 이상이다 라면
데이터를 먼저 Insert 후 중복오류 시 update하면 평균 작업 수행횟수를 1에 근접하게 할 수 있을 겁니다.
이 때는 merge나 Select 후 분기처리하는 것 보다 빠른 처리가 가능할 수 있습니다. 참고하세요...;

10g이상 버전이라면 텍스트파일을 테이블화해서 작업하는 external table 내용도 검토 해 보세요...;
이 때는 파일을 읽어 건건이 처리하지 않고 DB내의 테이블끼리의 조인처럼 일괄적으로 처리가 가능하겠지요...?

건승하시길...수고하세요~~

성시현(finecomp)님이 2007-08-03 17:09에 작성한 댓글입니다.
이 댓글은 2007-08-03 17:16에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
31537insert /*+ append */ 하다가 에러났을때 [2]
임선자
2007-08-04
2002
31536오라클 SSL에 대해서 궁금한점이 있습니다.
binilpaper
2007-08-04
1619
31534누가 Linux 용 오라클 10g 패치좀받아주세요.. [2]
하얀눈
2007-08-03
4914
31533대량의 데이터를 비교 처리 할때 [1]
freegigs
2007-08-03
2684
31532order by 정렬 후 rownum 참조 [2]
리무진
2007-08-03
4624
31531함수만들때 다른곳 테이블 사용불가능하나요? [4]
!!
2007-08-03
1994
31529insert하는 테이블을 select하면 속도에 영향을 미치나요? [1]
오라클
2007-08-03
2170
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다