deadlock : possibilité de les diminuer voir de les supprimer ?

Le
Extra
Bonjour à tous,

j'ai en problème avec les deadlock, j'ai consulté l'aide en ligne de slq
serveur et je n'ai rien trouvé concernant la possibilité "de limité voir de
supprimer" ces interblocages.
J'ai touvé de quoi tracer ces "deadlog" par sql avec drapeau 1204, il founis
de bonne indication des deux process au moment du deadlock.
Existe t il un paramétre permettant d'interdire ces deadlock.(l'espoir fait
vivre)
Pour exemple:
Interblocage deux process, executant la même proc stock, donc sur même table
"mais pas sur même donnée". les verrous sont automatiquement positionné par
SQL au niveau de la clé et non du RID. Le blocage se produit sur la
suppression d'enregistrement (2 enr.) dans une table (total 50 enr.).
Autre précision la proc. stock est récursive et s'appel elle même. mais de
ce copté pas de problème ne va pas plus loin que 5 nvx.

Pour le moment je ne trouve pas comment résoudre se problème, malgrès tous
les test effectué et documentation lu.
si vous avez une idée je suis preneur.
merci.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Med Bouchenafa
Le #11513931
Je ne connais pas de moyen miracle pour paramétrer l'élimination des deadlocks.
Désolé si cela met fin à ton espoir mais dans l'absolu, il y a toujours moyen de s'en sortir
La solution consiste à suivre les conseils de l'Aide En Ligne qui dit à ce sujet

Pour réduire les blocages :
a.. Accédez aux objets dans le même ordre.
b.. Évitez les interactions utilisateur dans les transactions.
c.. Créez des transactions courtes dans le même lot d'instructions.
d.. Utilisez un faible niveau d'isolation.
e.. Utilisez des connexions liées. (dites encore connexions associées)

--
Bien cordialement
Med Bouchenafa



"Extra"
Bonjour à tous,

j'ai en problème avec les deadlock, j'ai consulté l'aide en ligne de slq
serveur et je n'ai rien trouvé concernant la possibilité "de limité voir de
supprimer" ces interblocages.
J'ai touvé de quoi tracer ces "deadlog" par sql avec drapeau 1204, il founis
de bonne indication des deux process au moment du deadlock.
Existe t il un paramétre permettant d'interdire ces deadlock.(l'espoir fait
vivre)
Pour exemple:
Interblocage deux process, executant la même proc stock, donc sur même table
"mais pas sur même donnée". les verrous sont automatiquement positionné par
SQL au niveau de la clé et non du RID. Le blocage se produit sur la
suppression d'enregistrement (2 enr.) dans une table (total 50 enr.).
Autre précision la proc. stock est récursive et s'appel elle même. mais de
ce copté pas de problème ne va pas plus loin que 5 nvx.

Pour le moment je ne trouve pas comment résoudre se problème, malgrès tous
les test effectué et documentation lu.
si vous avez une idée je suis preneur.
merci.



bruno reiter [MVP]
Le #11513891
comme tu as tracé ton deadlock il ne reste qu'à résoudre, dans ton exemple,
force dès le départ un lock au niveau table, ainsi le deuxième process
attendra la fin du premier, il n'y aura pas de deaodlock.

br

"Extra" news:
Bonjour à tous,

j'ai en problème avec les deadlock, j'ai consulté l'aide en ligne de slq
serveur et je n'ai rien trouvé concernant la possibilité "de limité voir


de
supprimer" ces interblocages.
J'ai touvé de quoi tracer ces "deadlog" par sql avec drapeau 1204, il


founis
de bonne indication des deux process au moment du deadlock.
Existe t il un paramétre permettant d'interdire ces deadlock.(l'espoir


fait
vivre)
Pour exemple:
Interblocage deux process, executant la même proc stock, donc sur même


table
"mais pas sur même donnée". les verrous sont automatiquement positionné


par
SQL au niveau de la clé et non du RID. Le blocage se produit sur la
suppression d'enregistrement (2 enr.) dans une table (total 50 enr.).
Autre précision la proc. stock est récursive et s'appel elle même. mais de
ce copté pas de problème ne va pas plus loin que 5 nvx.

Pour le moment je ne trouve pas comment résoudre se problème, malgrès tous
les test effectué et documentation lu.
si vous avez une idée je suis preneur.
merci.



Extra
Le #11513751
Merci pour tes informations. je vais me mettre à la tâche.Je ne partais pas
sur le bon chemin j'étais convaincu qu'en placant un verrou "rid" (a la
ligne) cela aurais résolu mes problèmes.


"bruno reiter [MVP]" a écrit :

comme tu as tracé ton deadlock il ne reste qu'à résoudre, dans ton exemple,
force dès le départ un lock au niveau table, ainsi le deuxième process
attendra la fin du premier, il n'y aura pas de deaodlock.

br

"Extra" news:
> Bonjour à tous,
>
> j'ai en problème avec les deadlock, j'ai consulté l'aide en ligne de slq
> serveur et je n'ai rien trouvé concernant la possibilité "de limité voir
de
> supprimer" ces interblocages.
> J'ai touvé de quoi tracer ces "deadlog" par sql avec drapeau 1204, il
founis
> de bonne indication des deux process au moment du deadlock.
> Existe t il un paramétre permettant d'interdire ces deadlock.(l'espoir
fait
> vivre)
> Pour exemple:
> Interblocage deux process, executant la même proc stock, donc sur même
table
> "mais pas sur même donnée". les verrous sont automatiquement positionné
par
> SQL au niveau de la clé et non du RID. Le blocage se produit sur la
> suppression d'enregistrement (2 enr.) dans une table (total 50 enr.).
> Autre précision la proc. stock est récursive et s'appel elle même. mais de
> ce copté pas de problème ne va pas plus loin que 5 nvx.
>
> Pour le moment je ne trouve pas comment résoudre se problème, malgrès tous
> les test effectué et documentation lu.
> si vous avez une idée je suis preneur.
> merci.
>





Publicité
Poster une réponse
Anonyme