Estaba investigando las diferencias entre los niveles de aislamiento READ COMMITTED SNAPSHOT
y SQL Server SNAPSHOT
y encontré el siguiente recurso:
Elección de niveles de aislamiento basados en versiones de fila
Para la mayoría de las aplicaciones, se recomienda el aislamiento comprometido de lectura mediante el control de versiones de filas sobre el aislamiento de instantáneas por los siguientes motivos:
Consume menos espacio tempdb que el aislamiento de instantáneas.
El aislamiento de instantáneas es vulnerable a conflictos de actualización que no son aplicables al aislamiento confirmado de lectura mediante el control de versiones de filas. Cuando una transacción que se ejecuta con aislamiento de instantánea lee datos que luego se modifican por otra transacción, una actualización de la transacción de instantánea a los mismos datos provoca un conflicto de actualización y la transacción finaliza y retrocede. Esto no es un problema con el aislamiento confirmado de lectura usando el control de versiones de fila.
Soy algo nuevo en estos temas, pero parece que no puedo entender los dos puntos del enlace de arriba.
¿Por qué el espacio tempdb sería diferente para estos modos? ¿Uno almacena versiones más granulares que el otro?
¿Por qué el aislamiento de instantáneas es más vulnerable a los conflictos de actualización?