Rumah > pangkalan data > tutorial mysql > Bagaimanakah Pautan Pelayan dan OPENQUERY Memudahkan Pertanyaan Merentas Pangkalan Data?

Bagaimanakah Pautan Pelayan dan OPENQUERY Memudahkan Pertanyaan Merentas Pangkalan Data?

Barbara Streisand
Lepaskan: 2025-01-13 10:24:44
asal
836 orang telah melayarinya

How Can Server Links and OPENQUERY Facilitate Cross-Database Queries?

Pertanyaan silang pangkalan data: menggunakan pautan pelayan dan OPENQUERY

Terdapat banyak cara untuk mengakses data daripada pangkalan data yang berbeza, salah satunya adalah menggunakan pautan pelayan dan OPENQUERY.

Pautan pelayan

Untuk menyambungkan pangkalan data pada pelayan yang berbeza, anda boleh menggunakan prosedur tersimpan sp_addlinkedserver untuk membuat pautan pelayan. Ini membolehkan anda mengakses jadual pada pelayan yang dipautkan dan melaksanakan pertanyaan. Untuk menyertai jadual daripada pangkalan data yang berbeza, cuma tambahkan nama jadual dengan nama pelayan yang dipautkan. Contohnya:

<code class="language-sql">SELECT *
FROM [LinkedServerName].[DatabaseName].[SchemaName].[TableName]</code>
Salin selepas log masuk

OPENQUERY

Sebagai alternatif, anda boleh menggunakan OPENQUERY untuk melaksanakan pernyataan SQL dari jauh dan mendapatkan data tanpa perlu menyambung secara kekal ke pelayan. Sintaksnya adalah seperti berikut:

<code class="language-sql">SELECT *
FROM OPENQUERY([LinkedServerName], 'SELECT * FROM [DatabaseName].[SchemaName].[TableName]')</code>
Salin selepas log masuk

OPENQUERY meningkatkan prestasi dengan membenarkan pelayan jauh mengoptimumkan pelaksanaan pertanyaan. Selain itu, ia boleh cache keputusan sebagai jadual sementara untuk pertanyaan berikutnya.

Contoh

Untuk menggambarkan penggunaan pautan pelayan dan OPENQUERY, pertimbangkan senario untuk menyertai dua jadual dalam pangkalan data berbeza pada pelayan berbeza.

Kaedah pautan pelayan:

<code class="language-sql">SELECT *
FROM [Database1].[dbo].[Table1] t1
INNER JOIN [LinkedServerName].[Database2].[dbo].[Table2] t2
ON t1.ID = t2.ID</code>
Salin selepas log masuk

Kaedah OPENQUERY:

<code class="language-sql">-- 从远程数据库获取数据
SELECT *
INTO #TempTable
FROM OPENQUERY([LinkedServerName], 'SELECT * FROM [Database2].[dbo].[Table2]')

-- 将临时表与本地表连接
SELECT *
FROM [Database1].[dbo].[Table1] t1
INNER JOIN #TempTable t2 ON t1.ID = t2.ID</code>
Salin selepas log masuk

Pilihan antara dua kaedah ini bergantung pada faktor seperti saiz data, kerumitan pertanyaan dan keperluan prestasi.

Atas ialah kandungan terperinci Bagaimanakah Pautan Pelayan dan OPENQUERY Memudahkan Pertanyaan Merentas Pangkalan Data?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan