Pergunta

Eu tenho uma mesa chamada Mesa com colunas:

  • Id (int, chave primária, índice exclusivo, agrupado)
  • Texto (Varchar 15)

Em um servidor vinculado ao MSSQL chamado Ls. O servidor vinculado está no mesmo computador servidor. E:

Quando eu ligo:

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

Leva 400 ms.

Quando eu ligo:

SELECT ID, TEXT FROM LS.dbo.Table

Leva 200 ms

E quando eu ligo diretamente na consulta enquanto estiver no servidor LS:

SELECT ID, TEXT FROM dbo.Table

Leva 100 ms.

Em muitos lugares que li, o OpenQuery é mais rápido, mas neste caso simples, ele não parece funcionar. O que posso fazer para tornar essa consulta mais rápida quando a chamo de outro servidor, não LS diretamente?

Foi útil?

Solução

A respeito SELECT ID, TEXT FROM OPENQUERY(LS, 'SELECT ID, TEXT FROM dbo.Table') Para tornar as consultas equivalentes usando o esquema?

Enfim, leia isso Artigo de Linchi Shea sobre servidores vinculados

Nota: Uma chamada do servidor vinculada sempre será mais lenta que uma chamada direta. Do SQL Server para o seu SSMS, agora está passando por outra instância do SQL Server primeiro, então é claro que será mais lento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top