2016-08-07 3 views
0

한 서버에서 다른 서버의 데이터로 테이블을 업데이트하려고 할 때마다 다음 오류가 발생합니다. "TCP 공급자 : 지정한 네트워크 이름을 더 이상 사용할 수 없습니다." . 다음은 업데이트 성명 :TCP 공급자 : 지정한 네트워크 이름을 더 이상 사용할 수 없습니다.

update a 
    set a.vendorID = b.SubID 
    from ana.[FleetPlus].[dbo].[ServiceHistory] as a inner join ppcor.[subcontractors].[dbo].[Subcontractors] as b 
    on a.vendorID = b.FleetID 

이 업데이트 쿼리는 약 5 ~ 10 분 동안 중단 한 후 나에게 그 오류 메시지를 제공합니다. 이것에 대한 select 문을 실행할 수 있으므로 혼란 스럽습니다. 나는 그것이 연결된 서버에 문제가 있다고 생각하고 SSCM을 확인하고 Named Pipes와 TCP/IP를 두 서버에서 모두 사용할 수 있도록했습니다. 이것은 약 10k 레코드 만 업데이트하므로 너무 많지 않습니다. 무슨 일이 일어나고 있는지 또는 내가 무엇을 확인해야하는지에 대한 제안?

답변

1

연결된 서버에 문제가있는 것 같습니다.
은 하나를 알고 있지만,이 두 가지 선택을 실행하고 해당 오류가 어디에 있는지하지 마십시오

SELECT TOP 1 1 FROM ana.[FleetPlus].[dbo].[ServiceHistory]; 
GO 
SELECT TOP 1 1 FROM ppcor.[subcontractors].[dbo].[Subcontractors]; 
GO 

그런 다음 해당 연결된 서버 문제를 해결해야 할 것입니다.

BTW 다른 서버의 테이블을 연결하는 것은 매우 나쁜 습관입니다. 즉, 원격 서버에서 전체 테이블 검사를 수행하고 네트워크를 통해 이러한 데이터를 복사하고 SQL Server에서 이러한 데이터에 대한 메모리를 할당 한 다음 SELECT 만 수행해야합니다.

+0

나는 이것을 시도 할 것이다. 다른 두 서버의 두 테이블을 연결해야한다면 테이블 중 하나의 복사본을 만들어 다른 테이블에있는 dB에 두는 것이 좋습니다. 다른 서버의 두 테이블을 연결해야하는 경우이 문제를 해결하기 위해 권장되는 최선의 방법은 무엇입니까? @Slava Murygin – ETA

+0

매우 광범위한 질문입니다. 간단한 대답이 있는지 확실하지 않습니다. 조회가 일종의보고를 지원하는 경우 ETL 프로세스를 사용하여 모든 데이터를 한 곳 (데이터 마트)에서 수집하거나 게시 할 보고서를 준비하는 것이 좋습니다. –

관련 문제