Isolation snapshot et version tag


Une question que posent souvent les développeurs : comment éviter les verrous bloquants à la lecture des données ?

Une des (mauvaises) solutions est d’utiliser la directive NOLOCK (ou isolation READ UNCOMMITTED) : c’est un faux ami car cela ne garantit pas la cohérence transactionnelle des données que l’on lit.

L’autre solution est d’utiliser un niveau d’isolation « optimiste », par versionning : SNAPSHOT ou READ COMMITTED SNAPSHOT (RCSI).

Le principe de l’isolation par versionning est le suivant : plutôt que de poser un verrou partagé pour lire les données (ce qui empêchera de lire des données en cours de modification), SQL