Оба имени вводят в заблуждение.
В терминологии SQL Server SNAPSHOT и SNAPSHOT READ COMMITTED являются уровнями изоляции , а также способом реализации , как SQL Server обеспечивает изоляцию одновременного доступа к данным.
Основное отличие : в SNAPSHOT повторяющиеся чтения и фантомные чтения запрещены, в то время как на уровне SNAPSHOT READ COMMITTED вы можете испытывать неповторяющиеся чтения, а также вы можете испытывать фантомные чтения.
Другими словами, SNAPSHOT - более высокая и сильная изоляция, чем SNAPSHOT READ COMMITTED)
Относительно только уровень изоляции: SNAPSHOT эквивалентно SERIALIZABLE, а SNAPSHOT READ COMMITTED эквивалентно READ COMMITTED. Однако реализация отличается. Хотя SNAPSHOT и SNAPSHOT READ COMMITTED используют версии записей, с другой стороны, SERIALIZABLE и READ COMMITTED используют семантику блокировки, чтобы принудительно блокировать параллельный процесс к измененному (или читаемому) ресурсу, пока первый завершает свою транзакцию.
Я думаю, что параллелизм и изоляция транзакций достаточно сложны для понимания, и смешивание их (почти всегда) с оптимистической / пессимистической метафорой больше укрепляет понимание, чем помогает.