2009-02-11 7 views
2

Dans mon projet, j'ai deux DB distincts sur le même serveur. Les DB sont auto-suffisants à l'exception de trois colonnes dans la base de données "B" auxquelles il faut accéder dans la base de données "A".Considérations relatives aux performances de la procédure stockée de base de données croisée

Y at-il des considérations de performance si je devais avoir une procédure stockée dans A qui a accédé trois colonnes de B directement?

Actuellement, nous courons un travail de nuit pour importer les données nécessaires à partir du tableau B au tableau A, de sorte que la procédure stockée ne va pas sortir du champ d'application de A.

Est-ce que la meilleure méthode?

Est-ce que les procédures stockées cross DB sont conformes aux meilleures pratiques?

Répondre

4

Pour clarifier les autres commentaires des affiches.

Il n'y a pas d'impact négatif direct sur les performances lors de l'utilisation d'un accès croisé à une base de données via des procédures stockées. Les performances seront déterminées par l'architecture sous-jacente des bases de données individuelles, c'est-à-dire les index disponibles, les emplacements de stockage physiques, etc.

Ceci est en fait une pratique courante et tant que vous suivez les principes de réglage de requête standard, tout ira bien.

2

Tout dépend des données que vous faites référence et si pour soutenir cet accès direct index sont écrits ou pas. La meilleure chose que je peux vous dire est de créer la requête, l'exécuter, et voir si la performance est assez bonne.

Si les performances ne sont pas satisfaisantes puis exécutez à nouveau la requête et demandez à votre outil de gestion générer un plan d'exécution afin que vous puissiez identifier le goulot d'étranglement.

5

Il ne devrait pas y avoir de problème puisque les bases de données sont sur le même serveur. En général, les problèmes se produisent lorsque vous faites cela avec les serveurs liés et vous pouvez exécuter dans la latence du réseau

2

Oui, ce que vous faites actuellement - à savoir la réplication - est la chose « correcte » à faire.

Lors du référencement des données dans une autre base de données, vous ne pouvez pas utiliser l'intégrité référentielle, les contraintes de données et beaucoup de l'autre bonnes choses qui font un SGBDR un bon outil à utiliser.

Accès à l'autre base de données direcly les bases de données cravates ensemble - ils doivent exister sur le même serveur, pour tous les temps. Vous pouvez rencontrer des problèmes de badwidth en utilisant des serveurs liés et en exécutant le proc à la demande.

La réplication vous donne beaucoup plus de flexibilité.

1

Nous faisons cela tout le temps. Tant qu'ils sont sur le même serveur, il n'y a pas de problème. Si vous avez besoin que les données soient dans la table a de la base de données a avant de pouvoir entrer dans la table B de la base de données b, vous devez écrire un déclencheur pour vérifier que les relations de clés étrangères ne peuvent pas être définies.

Questions connexes