Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyertai Jadual Merentas Pangkalan Data pada Pelayan Berbeza?

Bagaimanakah Saya Boleh Menyertai Jadual Merentas Pangkalan Data pada Pelayan Berbeza?

DDD
DDDasal
2025-01-13 09:51:42188semak imbas

How Can I Join Tables Across Databases on Different Servers?

Sertai jadual merentas pangkalan data pelayan yang berbeza

Mengintegrasikan data daripada pangkalan data pelayan yang berbeza memberikan kemungkinan untuk melakukan pertanyaan komprehensif. Untuk melakukan ini, anda boleh mempertimbangkan strategi berikut:

Gunakan sp_addlinkedserver

Gunakan sp_addlinkedserver untuk mencipta pautan pelayan untuk mewujudkan sambungan antara dua pangkalan data. Sila rujuk kepada dokumentasi yang berkaitan untuk mengetahui cara menggunakannya. Setelah pautan diwujudkan, anda boleh membina pertanyaan seperti biasa, menambah nama pangkalan data dengan nama pelayan terpaut, seperti ini:

<code class="language-sql">SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID</code>

GUNAKAN OPENQUERY

OPENQUERY membolehkan anda melaksanakan penyataan SQL pada pelayan jauh dan mengambil hanya data yang diperlukan. Pendekatan ini meningkatkan kelajuan dan membolehkan pelayan jauh mengoptimumkan pertanyaan. Caching data dalam jadual sementara dalam pangkalan data tempatan boleh memudahkan pertanyaan berikutnya, sama seperti menyambung ke jadual standard.

Contohnya:

<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>

Sila rujuk dokumentasi OPENQUERY untuk lebih banyak contoh. Walaupun contoh yang diberikan di sini lebih mudah, pendekatan pertama menggunakan sp_addlinkedserver mungkin lebih sesuai. Walau bagaimanapun, apabila menapis data diperlukan, OPENQUERY boleh meningkatkan prestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyertai Jadual Merentas Pangkalan Data pada Pelayan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn