2009-11-09 3 views
1

한 데이터베이스의 데이터를 다른 서버의 다른 서버로 복제하려고합니다. 이 테이블을 다른 서버의 공유 데이터베이스에 복제하고 데이터베이스 간 쿼리가 공유 데이터베이스를 참조하도록하는 것이 좋을까요 ... 아니면 다른 서버의 개별 데이터베이스에 복제하는 것이 더 합리적입니까? 크로스 데이터베이스 조인은 성능에 영향을 미칩니 까? 데이터베이스 간 제약 조건이 예상대로 작동합니까?SQL Server 복제 (데이터베이스 간 쿼리 및 제약 조건)

공유 데이터베이스에 한 번 복제하면 복제 성능을 향상시키는 데 도움이됩니다 ... 데이터베이스 간 쿼리 또는 제약 조건으로 인해 성능에 영향을 줄지 여부를 평가하려고합니다.

편집 : SQL Server에서 교차 데이터베이스 제약 조건을 사용할 수없는 것 같습니다. 이것이 사실이라면 각 데이터베이스에 복제해야합니다.

답변

2

교차 데이터베이스 쿼리는 동일한 DB 내에서 다소 느립니다. 외래 키는 동일한 DB 내에서만 작동합니다. 일반적인 접근 방식은 ETL과 같은 각 DB에 별도의 스키마를 만든 다음 해당 테이블을 해당 스키마에 복제하는 것입니다. 이 접근법은 데이터 마트 사이에서 차원 테이블을 복제 할 때 실제로 자주 사용됩니다.

크로스 db 접근 방식을 사용하는 경우 트리거를 사용하여 제약 조건을 구현하면 느리고 복잡 할 수 있습니다. 응용 프로그램에 따라 외래 키를 "논리적 전용"으로 구현하고 참조 무결성을 처리하기 위해 주기적으로 "고아 찾기"쿼리를 실행할 수 있습니다.