Problème de concurrence avec SQL Server : deadlocks fréquents
Problème de concurrence avec SQL Server : deadlocks fréquents
Aidez-moi svp ! J'ai des deadlocks quotidiens sur SQL Server 2019. Le log montre des conflits entre UPDATE et SELECT sur les mêmes tables. J'ai essayé WITH (NOLOCK) mais les données sont critiques, pas question d'avoir des dirty reads !
Re: Problème de concurrence avec SQL Server : deadlocks fréquents
NOLOCK c'est la pire solution... As-tu analysé le deadlock graph ? Souvent le problème vient de l'ordre des opérations. Si ton appli fait d'abord SELECT puis UPDATE sur l'ID 123, mais l'inverse dans une autre transaction = deadlock garanti.
Full AMD, full silence
Re: Problème de concurrence avec SQL Server : deadlocks fréquents
Oui, le deadlock graph montre exactement ça ! Mais comment imposer un ordre commun ? Les requêtes viennent de services différents...
-
codeur1974
- Messages : 185
- Inscription : dim. mars 17, 2024 7:24 pm
Re: Problème de concurrence avec SQL Server : deadlocks fréquents
Plusieurs solutions : 1) Utilise des hints comme UPDLOCK dans tes SELECT 2) Implémente un service centralisé pour ces opérations 3) Passe en isolation level SERIALIZABLE sur les transactions critiques (mais impact perf).
Re: Problème de concurrence avec SQL Server : deadlocks fréquents
Je complète : pour les services distribués, une file d'attente (RabbitMQ etc.) peut aider. Sinon en urgence, active deadlock priority pour que certaines transactions soient sacrifiées plutôt que de tout bloquer.
Full AMD, full silence
Re: Problème de concurrence avec SQL Server : deadlocks fréquents
Merci à tous ! Je vais tester UPDLOCK + restructurer les appels dans un ordre cohérent. Si ça suffit pas, j'opterai pour la file d'attente. Je vous tiens au courant.