J'ai une importation entre 2 serveurs liés. Je dois essentiellement obtenir les données d'une jointure multiple dans une table de mon côté.Performances de la requête inter-base de données (entre serveurs liés)
La requête actuelle est quelque chose comme ceci:
select a.*
from db1.dbo.tbl1 a
inner join db1.dbo.tbl2 on ...
inner join db1.dbo.tbl3 on ...
inner join db1.dbo.tbl4 on ...
inner join db2.dbo.myside on ...
DB1 = serveur lié
db2 = ma propre base de données
Après celui-ci, j'utilise un insert dans + Sélectionner pour ajouter ces données dans ma table qui se trouve dans db2. (habituellement quelques centaines d'enregistrements - cette importation s'exécute une fois par minute)
Ma question est liée à la performance. Les tables sur le serveur lié (tbl1, tbl2, tbl3, tbl4) sont des tables énormes, avec des millions d'enregistrements, et ralentissent le processus d'importation. On m'a dit que, si je fais la jointure du côté "autre" (db1 - serveur lié) par exemple dans une procédure stockée, que, même si la requête semble la même, elle fonctionnerait plus vite. Est-ce correct? C'est un peu difficile à tester. Notez que la jointure contient également une table de ma base de données.
Aussi. Y a-t-il d'autres "trucs" que je pourrais utiliser pour accélérer cette course? Merci