2013-03-28 1 views
0

연결된 서버없이 다른 서버에있는 다른 데이터베이스의 테이블을 조인하는 방법이 있습니까?SQL Server 2008의 교차 서버 조인

연결된 서버가 유일한 옵션 인 경우 연결된 서버를 클러스터에 설정할 때 고려해야 할 단점/경고/사항이 있습니까?

감사합니다.

+0

가장 많은 행을 로컬로 히트 할 서버에서 쿼리를 실행하십시오. – Paparazzi

답변

2

링크 된 서버는 거의 유일한 게임입니다. 가장 큰 단점은 성능입니다 ... 서버가 연결된 서버에 대한 쿼리를 잘 최적화 할 수 없으며 물론 데이터 전송률과 인덱스 사용이 심각하게 방해 받고 있습니다.

내가 이런 식으로해야 할 때 나는 간단한 쿼리를 통해 사용할 원격 결과를 모두 가져 와서 데이터를 인덱싱 된 임시 테이블에 로컬로 저장하려고합니다. 초기 추첨은 느릴 수 있지만 필요에 따라 데이터를 사용할 수 있습니다. 그러나 실제로 모든 유형의 서버에 대한 복잡한 쿼리는 가능한 한 피해야합니다. 1 초 미만의 쿼리는 몇 분 또는 그 이상 걸릴 수 있습니다.

+0

이러한 단점은 server1을 server2에 연결하여 쿼리 할 때만 영향을 미치며, 연결되어있는 서버에서 쿼리를 실행해도 여전히 동일합니까? 기본적으로 연결된 서버를 설정하면 현재 성능에 영향을 미칩니 까? – chibis

+1

그것은 쿼리와 관련이 있습니다. 쿼리가 둘 이상의 서버에서 테이블을 참조하면 성능이 저하됩니다. 테이블 데이터와 데이터 볼륨 간의 상호 작용이 복잡할수록 히트가 얼마나 나쁜지에 대한 중요한 요소입니다. 원격 서버에서 20 개의 행을 선택하는 것은 눈에 띄지 않지만 로컬 테이블에 연결 한 다음 원격 연결을 통해 최적화되지 않은 조인 조건에서 로컬 테이블을 원격 테이블에 조인하는 것이 모발을 잃는 좋은 방법입니다. –

+0

고맙습니다. 이것은 정말로 도움이되었습니다. – chibis