Eu estava pesquisando as diferenças entre os níveis do SQL Server READ COMMITTED SNAPSHOT
e de SNAPSHOT
isolamento e me deparei com o seguinte recurso:
Escolhendo níveis de isolamento baseados em controle de versão de linha
Para a maioria dos aplicativos, recomenda-se o isolamento de leitura confirmada usando controle de versão de linha em vez do isolamento de captura instantânea pelos seguintes motivos:
Consome menos espaço tempdb do que o isolamento da captura instantânea.
O isolamento de captura instantânea é vulnerável a conflitos de atualização que não são aplicáveis à leitura de isolamento confirmado usando controle de versão de linha. Quando uma transação em execução sob isolamento de captura instantânea lê dados que são modificados por outra transação, uma atualização da transação de captura instantânea nos mesmos dados causa um conflito de atualização e a transação é encerrada e revertida. Esse não é um problema com o isolamento confirmado pela leitura usando o controle de versão de linha.
Sou um pouco novo nesses tópicos, mas não consigo entender os dois pontos do link acima.
Por que o espaço tempdb seria diferente para esses modos? Um armazena versões mais granulares que o outro?
Por que o isolamento de instantâneo é mais vulnerável a conflitos de atualização?