2012-04-19 2 views
3

현재 SSIS 데이터로드 중에 TableDiff 유틸리티를 사용하여 프로덕션의 라이브 테이블을 준비 테이블 (업데이트 할 최신 데이터가 있음 - 삽입/업데이트/삭제 일 수 있음)에서 업데이트합니다.SQL Server 2008의 TableDiff 유틸리티 대안에는 어떤 것이 있습니까?

그러나 TableDiff는 차이점을 확인하고 작업을 업데이트 할 때 사용할 SQL 스크립트를 만드는 데 약간의 시간이 걸립니다. (몇 시간에서부터 몇 가지 업데이트 행에 대해 약 100,000 개의 업데이트 행 식별 몇 일이 걸릴 것).

SQL Server 2008 또는 더 나은 프로세스/아이디어에서 TableDiff 유틸리티 대신 사용할 수있는 대안이 있습니까?

업데이트 : 두 제품/유틸리티 옵션을 찾고뿐만 아니라 더 나은 알고리즘 만들기 위해보다 빠르고

+1

중요한 문제. 나는 며칠 전에 이런 상황에 직면했다. 스테이징 테이블에 '타임 스탬프'(또는 플래그)를 추가로 사용했습니다. 데이터를 대상 테이블에로드 할 때마다'Timestamp' (또는 Flag)를 체크하십시오. 데이터가 완전히로드 된 후 열 (타임 스탬프 또는 플래그)을 업데이트하십시오. 이 시나리오에서는'Deleted' 데이터를 추적 할 필요가 없었기 때문에 효과적이었습니다. –

답변

2

합니까? DTS 시절에이 방법을 사용했습니다.

+0

좋은 예를 들어 주시겠습니까? 감사. – psam

+0

안녕하세요. Google이 나에게이 http://www.sqlservercentral.com/articles/EDW/77100/ 을 가져 왔으며 MERGE 구문에 대한 좋은 설명이 있습니다. 먼저 Management Studio를 사용하여 개발 데이터베이스에 연결하고 쿼리 창을 열고 스테이지 및 대상 테이블에 대한 MERGE 명령을 실험 해보는 것이 좋습니다. 혜택이 있으면 SSIS에 통합합니다. 위의 링크는 이것을 위해 저장 프로 시저를 작성할 필요가 없다고 말합니다. MERGE 문을 직접 SQL 실행 태스크에 넣을 수 있습니다. – satcat66

+0

http://technet.microsoft.com/en-us/library/cc280522(v=sql.105).aspx – satcat66

1

내가 레드 게이트의 SQL 데이터 비교 좋을 것하지만 조금 비싸다. (무료 평가판을 사용하면 효과가 있는지 확인할 수 있습니다)

0

RedGate가 가장 좋을 것 같습니다. 그것은 여기에 옵션을 선택하지 않습니다에 MERGE 문을 저장 프로 시저를 호출하는 이유

가끔 Atlantis 도구 그들은 매우 무거운

를 사용하지만, 자신의 일