Обычный ответ: это зависит! : -)
В основном о том, сколько трафика у вас в вашей системе, и какой уровень изоляции транзакций вы используете.
Уровень изоляции контролирует, как вы получаете ваши данные, и сколько происходит блокировка.
Если вы никогда не слышали об уровнях изоляции транзакций, вы, вероятно, используете значение по умолчанию - READ COMMITTED, что не должно быть слишком плохим выбором.
Однако, если по каким-либо причинам вы используете что-то вроде SERIALIZABLE
, вы можете столкнуться не с тупиками, а с задержками. Таблица может быть заблокирована на некоторое время, пока ваша транзакция не будет завершена. Если все операции работают в этом порядке (сначала удалите, затем вставьте, а затем выберите), я не вижу, как на самом деле вы должны встретить какие-либо тупики.
Ознакомьтесь с уровнями изоляции транзакций SQL здесь на www.sql-server-performance.com .