2011-10-04 7 views
1

tablediff.exe 도구를 사용하여 두 테이블을 비교하여 차이점을 비교하고 원격 SQL Server에서 변경 스크립트를 생성하지만 실행하는 데 매우 오랜 시간이 걸립니다 (1.5 이상 내가 포기한 시간). tablediff.exe가 로컬 컴퓨터에서 실행 중이지만 데이터베이스가 다른 서버에 있습니다 (요구 사항 - 아무 것도 할 수 없습니다).tablediff 도구를 실행하는 데 시간이 오래 걸림

SQL Server를 프로파일 링했으며 쿼리를 실행 한 것 같습니다. 이상하게 느린 다음 나는 기대했다.

테이블에는 약 2 백만 개의 레코드가 있지만 로컬 컴퓨터에서이 레코드를 실행하면 레코드가 훨씬 적게 보입니다 (약 2-3 분).

나는이 이유에 대해 알기 위해 노력하고 있는데, 속도를 높이는 방법이 있다면?

+0

bd2.schema2.table2에이 두 테이블 사이에 너무 많은 차이가 그 이유를 있다고 할 수 없다 너무 오래 걸립니까? – TheBoyan

답변

1

tablediff.exe 원격 서버의 모든 데이터를 가져 와서 로컬에서 비교하십시오. 오랜 시간은 2 백만 줄의 업로드/다운로드 시간입니다.

특정 쿼리를 작성하고 원격 서버에서 실행하십시오. 예 : 행

SELECT * FROM bd1.schema1.table1 
INTERSECT 
SELECT * FROM bd2.schema2.table2 

bd1.schema1.table1의 행과 동일

SELECT * FROM bd1.schema1.table1 
EXCEPT 
SELECT * FROM bd2.schema2.table2 
+0

이것은 흥미로운 접근 방법입니다. 나는 일정 기간에 실행되는 저장 프로 시저와 같은 tablediff와는 다른 솔루션으로 이것을 만들 생각을했습니다. 하지만 차이점 스크립트를 생성하려면 어떻게해야합니까?이 기능도 필요합니까? – TheBoyan

관련 문제