Dans cette vidéo sur SQL Server, nous voyons une syntaxe fameuse auprès des développeurs, Transact-SQL, c’est le NOLOCK.

C’est toujours un sujet de débat. De mon côté, je ne trouve pas ça très grave dans beaucoup de situations, mais l’important c’est de savoir ce que cela signifie. Lors d’une lecture sur une donnée verrouillée, on attend la libération du verrou. Parce que dans SQL Server nous sommes par défaut dans le niveau d’isolation READ COMMITTED. On essaie de faire une lecture mais on veut que la lecture ne puisse lire que des lignes qui ont été validées : READ COMMITTED.

On peut agir sur ce niveau d’isolation en SQL Server, et demander un READ UNCOMMITTED, c’est-à-dire des lectures sales. C’est la syntaxe WITH (NOLOCK), ou WITH (READUNCOMMITTED). C’est la même chose. Dans ce cas, vous faites une lecture sale. Vous êtes en train de lire des données qui n’existeront peut-être jamais de façon cohérente dans la base de données, puisqu’on peut très bien faire un ROLLBACK une seconde plus tard. Mais, si vous faites juste une liste de contacts et qu’il y a un contact en train d’être modifié en même temps, si c’est pour imprimer une liste pour la donner à quelqu’un, ce n’est pas très grave.

Astuces et tutoriels SQL Server en français, pour SQL Server 2017, SQL Server 2016, et toutes versions.
Par Rudi Bruchez
https://www.linkedin.com/in/rudibruchez/ http://www.babaluga.com

Rudi Bruchez
Sql Server consultant and trainer, Data Platform MVP
Modélisation, administration, optimisation, audit, formation. Solutions MS SQL Server et NoSQL
Expert SQL Server avec vingt ans d’expérience, focalisation sur l’optimisation. Conseil et développement pour Cassandra et MongoDB

Modelling, administration, optimisation, audit, training, MS SQL Server and NoSQL.
MS SQL Server expert with 20 years experience. Also NoSQL solutions, mainly Cassandra and MongoDB.

http://www.babaluga.com/contact/

Utiliser le niveau d’isolation NOLOCK en SQL Server