2009-05-13 6 views
1

SQL-Server 2005를 사용하고 있습니다.RedGate 데이터를 얻는 방법 비교 정렬 순서를 고려하십시오?

본질적으로 동일한 데이터가 포함 된 개발 데이터베이스와 전문가 데이터베이스가 있습니다. RedGate SQL Data Compare 5와 비교할 때 4 개의 레코드 만 다르다고합니다. 그러나 테이블을 열어서 볼 때 완전히 다른 정렬 순서로되어 있습니다. 어느 쪽의 테이블도 인덱스를 가지거나 정렬 순서를 강제하는 것이 없으며, 내 dev가 prod와 같은 순서로 정렬되는지 확인하려고합니다. 하지만 RedGate는 내가 가까이에있을 때 말하지 않을 것입니다. 동일한 정렬 순서가 아니더라도 일치하는 레코드를 찾기 때문입니다. 어떻게 무시합니까?

나는이 도구를 사용하여 내가 정렬 순서를 알아 냈을 때 알았는지 확인하고 싶습니다.

답변

1

정렬 순서가 다르다는 것은 행이 물리적으로 다른 방식으로 데이터 파일에 저장되지만 데이터는 여전히 정확하게 일치하므로 DC는 여전히 일치한다고보고합니다. SQL Server에는 수정을 제어 할 수있는 방법이 없기 때문에 차이점을 인식하더라도 차이를 동기화 할 방법이 없기 때문에 "실제 디스크 순서를 존중"하는 옵션을 사용할 수 없습니다 (본질적으로 사용자가 묻는 것입니다). 디스크 순서.

테이블을 쿼리 할 때 데이터를 디스크에서 가져온 순서는 신뢰할 수 없습니다. 특정 순서가 필요한 경우 쿼리에 "ORDER BY"절을 포함시켜 특정 정렬을 강제해야합니다 주문. ORDER BY를 사용할 수없는 이유가있는 경우 특정 정렬 순서를 강제하는 유일한 옵션은 테이블을 정렬하려는 필드에 클러스터형 인덱스를 추가하는 것입니다.

데이터를 다시 정렬해야하는 경우 "잘못된"테이블을 잘라내어 "INSERT INTO [잘못된 순서 테이블] SELECT * FROM [정상적인 테이블]"로 채워야합니다. . 그럼에도 불구하고 원하는 효과를 가져야하지만 보증은 없습니다.

나는 최선의 선택으로 order by 절을 권하고 싶습니다. 이러한 옵션 중 아무 것도 작동하지 않는 이유가있는 경우 알려 주시면 다른 제안을 시도 할 수 있습니다.

+0

그래, 주문이 가장 좋은 방법 인 것 같습니다. 안타깝게도 일부 외부 데이터에 연결된 일부 기록 데이터를 처리하고 있는데 기본 순서를 사용하여 이러한 데이터가 연결되는 방식을 알 수 있습니다. 바보,하지만 거기에있다. 우리는 순서를 정하고 링크 된 데이터를 포함하여 모든 데이터를 새로 고쳐야 만 제대로 처리 될 것이라고 생각합니다. – thursdaysgeek

관련 문제