Comparé à quoi? Pour quelles requêtes ? bien sûr, cela tout dépend sur ce que vous faites. Pour certaines requêtes, l'impact sur les performances sera négligeable pour d'autres, massif.
Il y a un tas de préoccupations que vous devez garder à l'esprit :
- Si vous allez joindre 2 tables de DB1 à 2 tables de DB2, et que les tables sont volumineuses, les choses peuvent devenir moche. À la fin de la journée, les requêtes s'exécuteront quelque part. La base de données devra extraire tous les résultats dans la base de données principale et maintenir l'intégrité transactionnelle sur la base de données principale. Cela peut être très coûteux.
- Si vous commencez à exécuter des transactions distribuées, peut devenir moche , rapide.
- Lorsque vous joignez des éléments sur plusieurs serveurs, vos index sur le serveur distant peuvent être rendus inutiles. Les données doivent toutes se déplacer quelque part pour les jointures.
- Les liens de serveurs liés peuvent être interrompus à des moments inattendus et entraîner des bogues difficiles à diagnostiquer.
Dans le passé, j'ai trouvé des situations où il était plus rapide de quelques ordres de grandeur de déplacer les données distantes localement et de les indexer avant de les rejoindre.