Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
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.

3 réponses

Avatar
Med Bouchenafa
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" a écrit dans le message de 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.



Avatar
bruno reiter [MVP]
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" wrote in message
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.



Avatar
Extra
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" wrote in message
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.
>