PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Hébergement serveur > ms.public.fr.sqlserver > SP et Transactions imbriquées et Verrou
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
SP et Transactions imbriquées et Verrou

Réponse
 
LinkBack Outils de la discussion
Vieux 25/11/2007, 17h59   #1
Francky
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut SP et Transactions imbriquées et Verrou

Bonjour

J'ai une 1ere procédure stockée qui ouvre une transaction avec un "BEGIN
TRAN T", suivis par diverses instructions de UPDATE/INSERT/SELECT/DELETE et
vers le milieu de la SP j'execute une 2eme SP (dont je récupere la valeur)
qui contient aussi un "BEGIN TRAN T" et des instructions
UPDATE/INSERT/SELECT/DELETE sur les mêmes tables que ceux de la 1ere SP.
Mais j'ai un probleme, en plein milieu de la 2eme procedure stocké, j'ai
l'impression que y'a un blocage.... Ma requete tourne eternellement, je ne
sais aps ce qui se passe alors je l'arrete.

Ma question est très simple. Apres un BEGIN TRAN, toutes les tables sur
lesquel on va travailler après seront verouillés, ma question est que comme
dans la 1ere SP je verouille des tables, et que dans la 2eme SP (que
j'appelle depuis la 1ere SP) je travaille sur les meme tables, est-ce que je
ne serai pas confronté à un verrou mortel qui fait que j'ai le sentiment que
ca bloque?

  Réponse avec citation
Vieux 25/11/2007, 18h54   #2
Sylvain Lafontaine
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: SP et Transactions imbriquées et Verrou

SQL-Server ne supporte pas les transactions imbriquées, la deuxième SP
s'exécute donc dans le même contexte transactionel que la première SP. Pour
SQL-Server, les BEGIN TRAN qui suivent un premier BEGIN TRAN ne servent qu'à
augmenter un compteur et les COMMIT TRAN à le diminuer. Cependant, un
ROLLBACK ne diminuera pas le compteur mais va le mettre à zéro: dès qu'un
rollback est rencontré, la transaction entière est automatiquement stoppé;
c'est pourquoi il est important de toujours vérifier la valeur du compteur
@@TRANCOUNT juste avant de faire un COMMIT ou un ROLLBACK.

À mon avis, votre problème ne peut donc pas provenir d'un problème de
verrou.

Pour ce qui est de votre deuxième énoncé, « Apres un BEGIN TRAN, toutes les
tables sur lesquel on va travailler après seront verouillés », cela est
potentiellement faux puisque les verrous ne fonctionnent pas nécessairement
au niveau de la table; ils peuvent être mis aussi bien au niveau du record
ou de la page que de la table, sur les données mêmes ou sur un index.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Francky" <francky@nexistepas.com> wrote in message
news:%2384k0z4LIHA.820@TK2MSFTNGP06.phx.gbl...
> Bonjour
>
> J'ai une 1ere procédure stockée qui ouvre une transaction avec un "BEGIN
> TRAN T", suivis par diverses instructions de UPDATE/INSERT/SELECT/DELETE
> et vers le milieu de la SP j'execute une 2eme SP (dont je récupere la
> valeur) qui contient aussi un "BEGIN TRAN T" et des instructions
> UPDATE/INSERT/SELECT/DELETE sur les mêmes tables que ceux de la 1ere SP.
> Mais j'ai un probleme, en plein milieu de la 2eme procedure stocké, j'ai
> l'impression que y'a un blocage.... Ma requete tourne eternellement, je ne
> sais aps ce qui se passe alors je l'arrete.
>
> Ma question est très simple. Apres un BEGIN TRAN, toutes les tables sur
> lesquel on va travailler après seront verouillés, ma question est que
> comme dans la 1ere SP je verouille des tables, et que dans la 2eme SP (que
> j'appelle depuis la 1ere SP) je travaille sur les meme tables, est-ce que
> je ne serai pas confronté à un verrou mortel qui fait que j'ai le
> sentiment que ca bloque?



  Réponse avec citation
Vieux 25/11/2007, 20h51   #3
Fred BROUARD
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: SP et Transactions imbriquées et Verrou

bonjour,

lisez l'article que j'ai écrit sur les transactions imbriquées :
http://www.sqlspot.com/Les-transactions-imbriquees.html

si vous ne résolvez pas votre problème, lisez l'artile que j'ai écrit
sur la gestion du niveau d'isolation des transactions :
http://www.sqlspot.com/Gerer-l-isola...nsactions.html

En désespoir de cause, si tout ceci n'a servit à rien, postez nous le
code de vos proc stock et le DDL des tables incriminées

A +


Francky a écrit :
> Bonjour
>
> J'ai une 1ere procédure stockée qui ouvre une transaction avec un "BEGIN
> TRAN T", suivis par diverses instructions de UPDATE/INSERT/SELECT/DELETE
> et vers le milieu de la SP j'execute une 2eme SP (dont je récupere la
> valeur) qui contient aussi un "BEGIN TRAN T" et des instructions
> UPDATE/INSERT/SELECT/DELETE sur les mêmes tables que ceux de la 1ere SP.
> Mais j'ai un probleme, en plein milieu de la 2eme procedure stocké, j'ai
> l'impression que y'a un blocage.... Ma requete tourne eternellement, je
> ne sais aps ce qui se passe alors je l'arrete.
>
> Ma question est très simple. Apres un BEGIN TRAN, toutes les tables sur
> lesquel on va travailler après seront verouillés, ma question est que
> comme dans la 1ere SP je verouille des tables, et que dans la 2eme SP
> (que j'appelle depuis la 1ere SP) je travaille sur les meme tables,
> est-ce que je ne serai pas confronté à un verrou mortel qui fait que
> j'ai le sentiment que ca bloque?



--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 21h09.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,09644 seconds with 11 queries