Biçim muhtemelen şöyle olmalıdır:
<server>.<database>.<schema>.<table>
Örneğin: DatabaseServer1.db1.dbo.table1
Güncelleme : Bunun eski bir soru olduğunu ve aldığım cevabın doğru olduğunu biliyorum; ancak, bununla karşılaşan herhangi birinin birkaç şey bilmesi gerektiğini düşünüyorum.
Yani, bir birleştirme durumunda bağlantılı bir sunucuya karşı sorgulama yapılırken, bağlantılı sunucudan gelen TÜM tablo , birleştirme işlemini yapmak için sorgunun yürütüldüğü sunucuya muhtemelen indirilecektir. OP'ın durumda, her iki table1
gelen DB1
ve table1
gelen DB2
tahminen adlandırılan sorgu, yürütme sunucuya kendi bütünlükleri içerisinde aktarılacaktır DB3
.
Büyük tablolarınız varsa, bu , yürütülmesi uzun süren bir işlemle sonuçlanabilir. Sonuçta, artık bellekten ve hatta disk aktarım hızlarından daha yavaş olan ağ trafiği hızları tarafından sınırlandırılmıştır.
Mümkünse, ihtiyacınız olan verileri geçici bir tabloya çekmek için yerel bir tabloya katılmadan uzak sunucuya karşı tek bir sorgu gerçekleştirin. Sonra bunun dışında sorgulayın.
Bu mümkün değilse, SQL sunucusunun tüm tabloyu yerel olarak yüklemesine neden olacak çeşitli şeylere bakmanız gerekir. Örneğin, GETDATE()
hatta belirli birleşimleri kullanmak. Diğer performans öldürücüler, uygun hakları vermemeyi içerir.
Daha fazla bilgi için http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/ adresine bakın .