Sertai jadual merentas pangkalan data pelayan yang berbeza
Apabila mendapatkan semula data daripada berbilang jadual dalam pangkalan data berbeza yang terletak pada pelayan berbeza, terdapat beberapa cara untuk menyertai jadual ini dengan cekap.
1. Gunakan pautan pelayan
Buat pautan pelayan melalui perintah sp_addlinkedserver
untuk mewujudkan sambungan antara pangkalan data. Akses melalui pertanyaan seperti biasa, meletakkan awalan nama pelayan yang dipautkan dengan nama pangkalan data, seperti yang ditunjukkan dalam contoh:
<code class="language-sql">-- 来自 DB1 SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2 ON tab1.ID = tab2.ID</code>
2. Gunakan OPENQUERY
Sebagai alternatif, pertimbangkan untuk menggunakan OPENQUERY
untuk melaksanakan pernyataan SQL jauh dan mendapatkan semula data daripada pelayan lain. Kaedah ini mengoptimumkan lebar jalur dan mengoptimumkan pertanyaan pada pelayan jauh. Anda boleh cache data ke dalam jadual sementara atau dalam memori untuk sambungan kemudian, seperti yang ditunjukkan dalam contoh berikut:
<code class="language-sql">-- 从其他数据库服务器获取数据 SELECT * INTO #myTempTable FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]') -- 现在我可以连接我的临时表以查看数据 SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID</code>
Nota
Pilihan antara Pautan Pelayan dan OPENQUERY
bergantung pada kes penggunaan dan keperluan prestasi tertentu. Pautan pelayan menyediakan sambungan kekal, manakala OPENQUERY
membenarkan pengambilan data sementara. Untuk senario yang memerlukan penapisan, OPENQUERY
mungkin lebih cekap. Sila rujuk dokumentasi untuk lebih banyak contoh dan senario.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual dengan Cekap Merentasi Pelayan Pangkalan Data Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!