Formatnya mungkin:
<server>.<database>.<schema>.<table>
Misalnya:DatabaseServer1.db1.dbo.table1
Perbarui :Saya tahu ini adalah pertanyaan lama dan jawaban yang saya miliki benar; namun, saya pikir siapa pun yang menemukan ini harus mengetahui beberapa hal.
Yaitu, saat melakukan kueri terhadap server tertaut dalam situasi bergabung SELURUH tabel dari server tertaut mungkin diunduh ke server tempat kueri dieksekusi untuk melakukan operasi gabungan. Dalam kasus OP, keduanya table1
dari DB1
dan table1
dari DB2
akan ditransfer seluruhnya ke server yang mengeksekusi kueri, mungkin bernama DB3
.
Jika Anda memiliki tabel besar, ini mungkin menghasilkan operasi yang membutuhkan waktu lama untuk dieksekusi. Lagi pula, sekarang dibatasi oleh kecepatan lalu lintas jaringan yang jauh lebih lambat daripada memori atau bahkan kecepatan transfer disk.
Jika memungkinkan, lakukan satu kueri terhadap server jauh, tanpa bergabung ke tabel lokal, untuk menarik data yang Anda perlukan ke tabel sementara. Kemudian kueri dari itu.
Jika itu tidak memungkinkan maka Anda perlu melihat berbagai hal yang menyebabkan SQL server harus memuat seluruh tabel secara lokal. Misalnya menggunakan GETDATE()
atau bahkan gabungan tertentu. Pembunuh kinerja lainnya termasuk tidak memberikan hak yang sesuai.
Lihat http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/ untuk info lebih lanjut.