Maison > base de données > tutoriel mysql > Comment joindre efficacement des tables sur différents serveurs de base de données ?

Comment joindre efficacement des tables sur différents serveurs de base de données ?

Susan Sarandon
Libérer: 2025-01-13 10:57:43
original
679 Les gens l'ont consulté

How to Efficiently Join Tables Across Different Database Servers?

Joindre des tables sur différentes bases de données de serveurs

Lors de la récupération de données de plusieurs tables dans différentes bases de données situées sur différents serveurs, il existe plusieurs façons de joindre ces tables efficacement.

1. Utiliser le lien du serveur

Créez des liens de serveur via la commande sp_addlinkedserver pour établir des connexions entre les bases de données. Accédez via requête comme d'habitude, en préfixant le nom du serveur lié avec le nom de la base de données, comme indiqué dans l'exemple :

<code class="language-sql">-- 来自 DB1
SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID</code>
Copier après la connexion

2. Utilisez OPENQUERY

Vous pouvez également envisager d'utiliser OPENQUERY pour exécuter des instructions SQL à distance et récupérer des données à partir d'autres serveurs. Cette méthode optimise la bande passante et optimise les requêtes sur le serveur distant. Vous pouvez mettre en cache les données dans une table temporaire ou en mémoire pour une connexion ultérieure, comme indiqué dans l'exemple suivant :

<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>
Copier après la connexion

Remarques

Le choix entre

Server Link et OPENQUERY dépend du cas d'utilisation spécifique et des exigences de performances. Les liens serveur fournissent une connexion permanente, tandis que OPENQUERY permet une récupération temporaire des données. Pour les scénarios nécessitant un filtrage, OPENQUERY peut être plus efficace. Veuillez vous référer à la documentation pour plus d'exemples et de scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal