Предполагая, что параметр изоляции транзакции Read Committed Snapshot является следующим утверждением "атомарным" в том смысле, что вы никогда не "потеряете" параллельное приращение?
update mytable set counter = counter + 1
Я бы предположил, что в общем случае, когда этот оператор обновления является частью более крупной транзакции, этого не было бы. Например, я думаю, что этот сценарий возможен:
- обновить счетчик в транзакции # 1
- выполните некоторые другие действия в транзакции № 1
- обновить счетчик с транзакцией № 2
- совершить транзакция № 2
- совершить транзакцию # 1
В этой ситуации не будет ли счетчик только увеличиваться на 1? Это имеет значение, если это единственное утверждение в транзакции?
Как сайт, подобный stackoverflow, обрабатывает это для своего счетчика вопросов? Или есть возможность "потерять" некоторые приращения, которые считаются приемлемыми?