Heim > Datenbank > MySQL-Tutorial > Wie kann man Tabellen auf verschiedenen Datenbankservern effizient verknüpfen?

Wie kann man Tabellen auf verschiedenen Datenbankservern effizient verknüpfen?

Susan Sarandon
Freigeben: 2025-01-13 10:57:43
Original
683 Leute haben es durchsucht

How to Efficiently Join Tables Across Different Database Servers?

Verbinden Sie Tabellen über verschiedene Serverdatenbanken hinweg

Beim Abrufen von Daten aus mehreren Tabellen in verschiedenen Datenbanken, die sich auf verschiedenen Servern befinden, gibt es mehrere Möglichkeiten, diese Tabellen effizient zu verknüpfen.

1. Serverlink verwenden

Erstellen Sie Serververbindungen über den Befehl sp_addlinkedserver, um Verbindungen zwischen Datenbanken herzustellen. Zugriff per Abfrage wie gewohnt, wobei dem Namen des Verbindungsservers der Datenbankname vorangestellt wird, wie im Beispiel gezeigt:

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

2. Verwenden Sie OPENQUERY

Erwägen Sie alternativ die Verwendung von OPENQUERY, um Remote-SQL-Anweisungen auszuführen und Daten von anderen Servern abzurufen. Diese Methode optimiert die Bandbreite und optimiert Abfragen auf dem Remote-Server. Sie können Daten für eine spätere Verbindung in einer temporären oder speicherinternen Tabelle zwischenspeichern, wie im folgenden Beispiel gezeigt:

<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>
Nach dem Login kopieren

Notizen

Die Wahl zwischen

Server Link und OPENQUERY hängt vom spezifischen Anwendungsfall und den Leistungsanforderungen ab. Server-Links stellen eine permanente Verbindung bereit, während OPENQUERY den temporären Datenabruf ermöglicht. Für Szenarien, die eine Filterung erfordern, ist OPENQUERY möglicherweise effizienter. Weitere Beispiele und Szenarien finden Sie in der Dokumentation.

Das obige ist der detaillierte Inhalt vonWie kann man Tabellen auf verschiedenen Datenbankservern effizient verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage