2009-09-18 5 views
0

대량 데이터 업로드 중에 데이터베이스 테이블의 데이터를 관리하기위한 모범 사례와 아이디어를 찾고 있습니다. 나는 그것이 예를 들어 시작하는 것이 가장 쉬운 방법이 될 것이라고 생각 :SQL 대량 업로드 중에 이전 레코드 제거

문제의 데이터베이스 테이블은 다음과 같은 기록이 포함되어 있다고 가정 :

id | name  | ... 
1 | company A | 
2 | company B | 
3 | company C | 

그때 일괄 갱신하도록 선택할 새로운 데이터 파일이 테이블 정보를 포함 A 회사와 C 회사에 대해서만 B 회사가 더 이상 원하는 데이터 지점이 아니라는 것을 이해해야합니다.

제 질문은 데이터 파일에 나열된 데이터 요소를 관리하기 위해 upsert 기술을 사용하고 있지만 데이터베이스 (예 : B 회사)에서 설명되지 않은 데이터 요소를 효과적으로 제거하려면 어떻게해야합니까? 타임 스탬프를 모니터링하고 업로드 시작 시간보다 오래된 결과를 지워야합니까? 또는 전체 테이블을 덤프하고 다시 채워야합니까 (지표 관리 비용을 감수하면서)? 후자는 업로드하는 동안 테이블을 쓸모 없게 만드는 단점이 있지만 전자는 동시성과 잠금 문제가 있습니다. 생각?

답변

2

데이터를 작업 테이블에 넣은 다음 SQL 코드를 사용하여 프로덕션 테이블에 대량 삽입하는 대신 원하는 레코드 만 삽입하거나 업데이트합니다.

미안하지만, 오랫동안 유용한 레코드를 제거하는 방법을 알고 싶습니다. 다시 작업 테이블에 대량 삽입 한 다음 해당 테이블에 조인하여 더 이상 필요없는 레코드를 식별하고 delte 문으로 제거하십시오.

+0

"작업"영역에 데이터를 업로드하면 "기본"테이블을 수정하기 전에 많은 작업을 수행하는 등 다양한 옵션을 사용할 수 있습니다. –

+0

임시 테이블에서 새 데이터 준비를 고려하지 않았습니다. 이것은 잘 작동 할 것입니다. 감사! – trydionel

+0

데이터를 가져 오지 않고 가져 오기를 수행하지 않습니다. 내가 닦으려고 할 때까지 아무 것도 내 테이블에 가지 않습니다. – HLGEM