2009-02-03 12 views
1

Problème: Je dois extraire des données d'une base de données SQL Server et d'une base de données Oracle et les regrouper dans un ensemble de données. Le problème que j'ai est: La requête SQL Server nécessite un ID qui est seulement trouvé à partir du retour de la requête Oracle. Ce que je me demande est: Comment puis-je aborder ce problème de manière à ne pas nuire aux performances?Oracle et SQL Dataset

Répondre

1

Vous pouvez le faire avec des serveurs liés ou en transférant les données d'un seul côté. Tout va dépendre du volume de données de chaque côté.

Une règle générale est d'exécuter la requête du côté qui a le plus de données.

Par exemple, si l'ensemble des ID Oracle est petite, mais l'ensemble SQL Server est grande, vous faites un serveur lié au côté Oracle et exécuter ce sur le côté SQL Server:

SELECT * 
FROM sqlservertable 
INNER JOIN linkedserver.oracletable 
    ON whatever 

En Dans ce cas, si le côté Oracle est important (ou ne peut pas être préfiltré avant le besoin de rejoindre le côté SQL Server), les performances seront normalement médiocres - et amélioreront beaucoup en tirant sur toute la table (ou le sous-ensemble minimal peut déterminer) dans une table SQL Server à la place et faire le tout JOIN sur le côté SQL Server.