Mis à jour le 23 avril 2015
L'année dernière, j'ai rassemblé une série d'articles visant à examiner en détail la concurrence, les propriétés ACID des instructions et des transactions, et chacun des principaux niveaux d'isolement dans SQL Server. Maintenant, j'ai conclu la série avec un dernier article sur le niveau d'isolation probablement le plus couramment utilisé intentionnellement :lire uncommitted ("NOLOCK").
Les propriétés ACID des relevés et des transactions |
Le niveau d'isolement sérialisable |
Le niveau d'isolement de lecture répétable |
Le niveau d'isolement de lecture validée |
Lire l'isolement d'instantané validé |
Modifications de données sous isolation d'instantané validé en lecture |
Le niveau d'isolement SNAPSHOT |
Le niveau d'isolement de lecture non validée |
Puisque vous avez été patient pour le dernier épisode, je peux vous proposer d'autres lectures/regards en arrière-plan sur la lecture non engagée :
- Lubor Kollar :les lignes validées précédemment peuvent être manquées si l'indicateur NOLOCK est utilisé
- Aaron Bertrand : Mauvaises habitudes :mettre NOLOCK partout
- Craig Freedman :Échec de la requête avec lecture non validée
- Aaron Bertrand :évitez d'utiliser NOLOCK sur les instructions SQL Server UPDATE et DELETE
- David Lean :indice SQL Server NOLOCK et autres mauvaises idées
- Sunil Agarwal :Série Concurrency :Pourquoi est-ce que j'obtiens un blocage lorsque j'utilise le niveau d'isolement Read Uncommitted ou l'astuce NOLOCK ?
- Tony Rogerson :Timebomb – Le problème de cohérence avec NOLOCK / READ UNCOMMITTED (et une suite)