2010-03-16 4 views
2

나는이 열라는 테이블 :간단한 링크 된 서버 선택 쿼리를 최적화하는 방법?

  • ID (INT, 기본 키, 클러스터, 고유 인덱스)
  • TEXT (VARCHAR (15))

MSSQL 연결된 서버에 LS이라고합니다. 연결된 서버가 동일한 서버 컴퓨터에 있습니다. 그리고 :

내가 전화 할 때 :

SELECT ID, TEXT FROM OPENQUERY(LS, 'SELECT ID, TEXT FROM Table') 

400 MS 걸립니다.

내가 전화 할 때 :

SELECT ID, TEXT FROM dbo.Table 

그것은 100 밀리 취

SELECT ID, TEXT FROM LS.dbo.Table 

200 MS

내가 LS 서버에있는 동안 직접 쿼리를 호출 할 때 소요.

많은 곳에서 OPENQUERY는 더 빠르다고 읽었지만이 간단한 경우 작동하지 않는 것 같습니다. LS가 아닌 다른 서버에서이 쿼리를 더 빨리 호출하려면 어떻게해야합니까?

+1

연결된 서버가 다른 유형 (예 : Oracle) 인 경우에만 OpenQuery를 사용해야했습니다. 그 차이는 항상 ie라고 표시됩니다. x2? 더 많은 데이터를 요청하는 더 큰 쿼리를 보내려면/더 무거운 필터가 표시된 오버 헤드입니까? – CResults

+0

@CResults - 필터가 더 복잡한 경우 오버 헤드가 더 크며, 차이는 여러 번의 평가에서 평균입니다. 특정 쿼리에는 매우 다른 시간이 있습니다. –

답변

1

SELECT ID, TEXT FROM OPENQUERY(LS, 'SELECT ID, TEXT FROM dbo.Table')은 스키마를 사용하여 쿼리를 동일하게 만드는 방법은 무엇입니까?

어쨌든, 연결된 서버에 대해

참고이 article from Linchi Shea을 읽어 연결된 서버 호출이 항상 직접 호출보다 느리게 될 것입니다. SQL Server에서 SSMS 로의 전환은 이제 다른 SQL Server 인스턴스를 먼저 통과하므로 느려질 것입니다.

관련 문제