Je recherchais les différences entre SQL Server READ COMMITTED SNAPSHOT
et les SNAPSHOT
niveaux d'isolement et suis tombé sur la ressource suivante:
Choix des niveaux d'isolement basés sur le contrôle de version des lignes
Pour la plupart des applications, il est recommandé de lire l'isolement validé à l'aide du contrôle de version de ligne par rapport à l'isolement de capture instantanée pour les raisons suivantes:
Il consomme moins d'espace tempdb que l'isolement de cliché.
L'isolement de capture instantanée est vulnérable aux conflits de mise à jour qui ne s'appliquent pas à la lecture de l'isolement validé à l'aide du contrôle de version de ligne. Lorsqu'une transaction s'exécutant sous l'isolement d'instantané lit des données qui sont ensuite modifiées par une autre transaction, une mise à jour par la transaction d'instantané vers les mêmes données provoque un conflit de mise à jour et la transaction se termine et annule. Ce n'est pas un problème avec l'isolation validée en lecture à l'aide du contrôle de version de ligne.
Je suis un peu nouveau sur ces sujets, mais je n'arrive pas à comprendre les deux points du lien ci-dessus.
Pourquoi l'espace tempdb serait-il différent pour ces modes? L'un stocke-t-il des versions plus granulaires que l'autre?
Pourquoi l'isolement de cliché est-il plus vulnérable aux conflits de mise à jour?