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