Я досліджував відмінності між рівнями SQL Server READ COMMITTED SNAPSHOT
та SNAPSHOT
рівнями ізоляції і натрапив на наступний ресурс:
Вибір рівнів ізоляції на основі версій
Для більшості застосунків рекомендується прочитати дозволену ізоляцію з використанням версії версій над ізоляцією знімків з наступних причин:
Він споживає менше tempdb місця, ніж ізоляція знімків.
Ізоляція знімка вразлива для оновлення конфліктів, які не застосовуються для читання скоєної ізоляції за допомогою версійної версії. Коли транзакція, запущена під ізоляцією знімка, читає дані, які потім змінюються іншою транзакцією, оновлення транзакції знімком на ті самі дані викликає конфлікт оновлення, і транзакція закінчується і відкочується назад. Це не проблема з читкою, дозволеною ізоляцією за допомогою версії версій.
Я дещо новачок у цих темах, але я, здається, не розумію двох точок кулі за посиланням вище.
Чому простір tempdb відрізнятиметься для цих режимів? Чи зберігається одна більш деталізована версія, ніж інша?
Чому ізоляція знімків більш вразлива для оновлення конфліктів?