Meilleur auteur de réponses
Vues & serveurs liés

Question
-
Bonsoir à tous
J'ai une base A liée à une base B
J'ai une vue dans la base A qui prend les données dans la base B
Lors d'une action sur la vue dans la base A, dois-je la traiter comme une requête distribuée avec :
SET XACT_ABORT ON
BEGIN DISTRIBUTED TRANSACTION
ma transaction distribuée
COMMIT TRANSACTION
SET XACT_ABORT OFF
Ou pas besoin puisqu'elle est dans la même base ???
D'avance merci pour votre aide
@+
Réponses
-
Merci pour votre réponse.
Pour synthétiser peut dire ceci :
Ayant 2 base de données A & B sur 2 instances distinctes, les 2 bases étant liées :- Si je crée une vue Vue1 dans la BD B qui lit des données dans la base A, si je ne fait que des lectures (select ...) dans cette vue Vue1, il n'y a pas besoin de transactions distribuées.
- Par contre si au travers de cette Vue1, je fais des Mises à jour (update) ou des insertions (insert), dans ce cas il faudra des transactions distribuées.
Merci de vos réponses.
Cordialement,
A mon sens oui, c'est comme çà !
Christian Robert - MVP SQL Server
Blog : http://blogs.codes-sources.com/christian/
Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr- Marqué comme réponse AMDMAN_fr mardi 5 janvier 2010 16:30
Toutes les réponses
-
Bonsoir,
Si vos bases se trouvent sur le même serveur , vous n'avez pas besoin des serveurs liées et gérer des transactions distribuées.
++
MCDBA | MCITP SQL Server 2005 | MCTS SQL Server 2008 | LPI Linux 1- Proposé comme réponse Christian Robert - MCT - MCM mardi 22 décembre 2009 10:46
-
Bonsoir Mikedavem,
D'abord merci pour votre réponse.
Je viens d'acheter un livre de Microsoft press, il est dit ceci:
"Fondamentalement, les requêtes & les transactions sont distribuées lorsqu'elles mettent en jeu plusieurs instances de base de données".
Ce qui corrobore vos dires.
Concernant ma question, j'ai quand même un doute, parce que la vue que j'utilise est bien interne à mon instance, mais elle pointe sur une autre instance.
Donc dans mon esprit, lorsque je fait un select sur cette vue, le select se fait bien en interne, mais si les données proviennent d'une autre instance.
Quand pensez-vous????
Merci,
Cordialement,
@+ -
Bonjour,
Oui en effet le fait d'avoir une vue qui va lire les données d'une autre instance ajoute un aspect distribué à l'ensemble.
Par contre, s'il a uniquement des données lues au travers de cette vues et que les mises à jour ne conscerne que les tables des bases de données locale, il n'y a pas de raison qu'il ai une transaction distribuée.
Cordialement
Christian Robert - MVP SQL Server
Blog : http://blogs.codes-sources.com/christian/
Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr -
Merci pour votre réponse.
Pour synthétiser peut dire ceci :
Ayant 2 base de données A & B sur 2 instances distinctes, les 2 bases étant liées :
- Si je crée une vue Vue1 dans la BD B qui lit des données dans la base A, si je ne fait que des lectures (select ...) dans cette vue Vue1, il n'y a pas besoin de transactions distribuées.
- Par contre si au travers de cette Vue1, je fais des Mises à jour (update) ou des insertions (insert), dans ce cas il faudra des transactions distribuées.
Merci de vos réponses.
Cordialement,
- Proposé comme réponse Christian Robert - MCT - MCM mardi 5 janvier 2010 14:22
-
Merci pour votre réponse.
Pour synthétiser peut dire ceci :
Ayant 2 base de données A & B sur 2 instances distinctes, les 2 bases étant liées :- Si je crée une vue Vue1 dans la BD B qui lit des données dans la base A, si je ne fait que des lectures (select ...) dans cette vue Vue1, il n'y a pas besoin de transactions distribuées.
- Par contre si au travers de cette Vue1, je fais des Mises à jour (update) ou des insertions (insert), dans ce cas il faudra des transactions distribuées.
Merci de vos réponses.
Cordialement,
A mon sens oui, c'est comme çà !
Christian Robert - MVP SQL Server
Blog : http://blogs.codes-sources.com/christian/
Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr- Marqué comme réponse AMDMAN_fr mardi 5 janvier 2010 16:30
-
Merci beaucoup à tous pour vos réponses et votre aide.
J'ai remarqué que les transactions distribuées prenaient énormément de temps :
Dans une procédure stockée qui fait des calculs pour 1200 comptes clients ; durée de la procédure stockée 5 secondes grand maximum.
Je change ma procédure stockée en y incluant un update d'une vue (la même que celle de l'exemple ci-dessus) en transaction distribuée, donc 1200 updates une par une (pas dans un lot) durée de la procédure stockée 1minute 45s !!!!! rien que ca, par contre en faisant l'update en un a lot, pas de changement de durée.