이것은 내 문제입니다. 연결된 서버를 정의한 후 LINKSERV이라고하며 LINKDB이라는 데이터베이스가 있습니다. 내 서버 (MYSERV)에는 MYDB 데이터베이스가 있습니다.연결된 서버가있는 단일 SELECT는 ID 별 다중 SELECT를 만듭니다
아래 질문을 수행하고 싶습니다.
SELECT *
FROM LINKSERV.LINKDB.LINKSCHEMA.LINKTABLE
INNER JOIN MYSERV.MYDB.MYSCHEMA.MYTABLE ON MYKEYFIELD = LINKKEYFIELD
문제는 그 프로파일에 대해 살펴 경우, 내가 SELECT의 LINKSERV 서버를 많이에서 만들어진 것을 볼 수 있다는 것입니다. @1
모든이 변경되는 매개 변수입니다
SELECT *
FROM LINKTABLE WHERE LINKKEYFIELD = @1
선택 : 그들은 비슷합니다. 물론 이것은 성능이 좋지 않기 때문에 원치 않는 것입니다. 내가 틀릴 수도 있지만 문제는 JOIN에서 다른 서버를 사용하는 것과 관련이 있다고 가정합니다. 사실, 이것을 피하면 문제가 사라집니다.
맞습니까? 해결책이 있습니까? 미리 감사드립니다.
이것은 매개 변수화 된 쿼리라고하며 매우 잘 수행되어야합니다. 이 용어에 대한 검색을 수행하십시오. LINKTABLE.LINKKEYFIELD에 인덱스를 추가해야합니다. – Hogan
이것은 매개 변수가있는 쿼리와 관련이 없습니다. 연결된 서버의 쿼리는 다르게 동작하도록 바인딩됩니다. BTW, 어떤 버전의 SQL Server에 대해 이야기하고 있습니까? –
** MYSERV **는 SQL2008R2이고 ** LINKSERV **는 SQL2008입니다. – ufo