안녕하세요.. 혼자 판단하기에 좀 어려운게 있어서 질문을 드릴려고 합니다. 약 50만건 정도의 텍스트 데이터를 디비에 입력을 하는 문제인데. 이 데이터가.. 30분단위로 들어오게 됩니다. 문제는.. 텍스트 데이터에 중복여부나.. 수정 여부, 신규 같은 체크 컬럼이 없어서 전체 비교를 통해서.. 신규,업뎃, 구분을 해야 하는데.. 가장 빠른 방법이 무었일까 해서.. 질문들 드립니다. 고수님들의 고견 부탁 드리겠습니다..
아래 내용들 중 텍스트 파일을 직접읽어 처리하는 방법은 array processing도 반드시 함께 고려해야 합니다. 글만 가지고는 자세한 상황을 알 수 없으나, 일반적인 방법은 select 후 결과에 따라 insert하거나 update하는 방법이겠지요...; 하지만 이는 데이터를 저장하기 위해 반드시 2회의 SQL수행횟수를 가집니다. 혹 버전이 9i이상이라면 MERGE문을 검토 해 보세요...; 도움이 될 수도 있겠구요...; 신규/수정 중 한쪽으로 매우 많이 편중된 처리라면, 예를 들어 데이터들 중 신규가 90% 이상이다 라면 데이터를 먼저 Insert 후 중복오류 시 update하면 평균 작업 수행횟수를 1에 근접하게 할 수 있을 겁니다. 이 때는 merge나 Select 후 분기처리하는 것 보다 빠른 처리가 가능할 수 있습니다. 참고하세요...; 10g이상 버전이라면 텍스트파일을 테이블화해서 작업하는 external table 내용도 검토 해 보세요...; 이 때는 파일을 읽어 건건이 처리하지 않고 DB내의 테이블끼리의 조인처럼 일괄적으로 처리가 가능하겠지요...? 건승하시길...수고하세요~~