Bonjour,
J'ai un blocage sur une transaction en UPDATE avec un "WITH NOLOCK" !?
Le "NOLOCK" ne s'appliquant pas aux instructions "INSERT", "UPDATE" et "DELETE", comment est il géré avec une de ces instructions ?
Il est ignoré ?
![]()
Bonjour,
J'ai un blocage sur une transaction en UPDATE avec un "WITH NOLOCK" !?
Le "NOLOCK" ne s'appliquant pas aux instructions "INSERT", "UPDATE" et "DELETE", comment est il géré avec une de ces instructions ?
Il est ignoré ?
![]()
Une transaction IMPOSE obligatoirement des verrous dès lors qu'il y a des mises à jour. Que vous précisiez NOLOCK n'a donc aucun intérêt si des UPDATE, INSERT ou DELETE sont présent dans le corps de la transaction.
C'est d'ailleurs généralement une fort mauvais idée que d'obliger le serveur à adopter un verrouillage particulier alors que celui-ci est dynamique si vous ne faites rien.
C'est pourquoi il est très nettement préférable de jouer sur les niveaux d'isolation des transaction.
Je vous invite à lire ce que j'ai écrit à ce sujet : http://sqlpro.developpez.com/isolation-transaction/
Enfin, il serait intéressant que vous nous postiez :
1) le code complet de la transaction
2) le message d'erreur exact;
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Je vais jeter un oeil...
Je n'ai pas dévellopé l'appli, juste un constat depuis le moniteur d'activité...
Je vois ca et je reviens !![]()
Partager