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

Bagaimanakah Saya Boleh Menyertai Jadual Merentasi Pelayan Pangkalan Data Berbeza?

DDD
Lepaskan: 2025-01-13 10:46:46
asal
371 orang telah melayarinya

How Can I Join Tables Across Different Database Servers?

Data pertanyaan merentas jadual sambungan pelayan pangkalan data

Dalam banyak kes, anda mungkin perlu menyertai jadual dalam pangkalan data berbeza yang terletak pada pelayan berbeza. Ini boleh menjadi satu cabaran, tetapi terdapat cara untuk memudahkan penyepaduan data ini.

Kaedah 1: Buat pautan pelayan

sp_addlinkedserver Prosedur tersimpan membolehkan anda mewujudkan sambungan antara pelayan setempat dan pelayan pangkalan data jauh, dipanggil pautan pelayan. Setelah pautan diwujudkan, anda boleh merujuk jadual jauh dalam pertanyaan dengan menambahkan nama pangkalan data pelayan jauh dengan nama pangkalan datanya.

Sebagai contoh, jika anda mempunyai jadual MyDatabaseOnDB1 dalam MyTable dan jadual MyDatabaseOnDB2 dalam MyOtherTable, anda boleh menyertainya menggunakan pertanyaan berikut:

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

Kaedah 2: Gunakan OPENQUERY

Sebagai alternatif, anda boleh menggunakan OPENQUERY untuk melaksanakan pertanyaan SQL pada pelayan jauh dan mendapatkan semula hasilnya. Kaedah ini membolehkan pelayan jauh mengoptimumkan pertanyaan dan boleh meningkatkan prestasi. Untuk melakukan ini, anda membuat jadual sementara pada pelayan tempatan dan gunakan OPENQUERY untuk mengisinya dengan hasil pertanyaan yang dilaksanakan pada pelayan jauh.

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>
Salin selepas log masuk
Penggunaan

OPENQUERY boleh meningkatkan prestasi dan menjimatkan masa, terutamanya apabila menggunakan pertanyaan untuk menapis set data yang besar.

Sama ada anda menggunakan pautan pelayan atau OPENQUERY bergantung pada keperluan khusus aplikasi anda dan pertimbangan prestasi. Kedua-dua pendekatan menyediakan penyelesaian yang berdaya maju untuk pertanyaan data merentas pelayan pangkalan data dan memudahkan penyepaduan data yang cekap.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan