У меня есть программа бронирования авиабилетов, использующая mssql. Для резервирования рейсов я хочу быть уверенным, следует ли мне использовать уровень изоляции или блокировки?
(это пример кода, моя проблема - уровень изоляции, в этой ситуации не выполняйте резервирование)
В моей базе данных есть таблица для инвентаризации, например:
Inventory Table
------------------------
id (Pk),
FlightNumber,
Total,
Sold
теперь, если кто-то хочет зарезервировать рейс, я использую этот код в транзакции
Decalre @total int;
Decalre @sold int;
Select @total=Total,@sold=Sold From Inventory where FlightNumber='F3241b';
IF @total-@sold > 0
BEGIN
Update inventory set Sold=Sold+1 where FlightNumber='F3241b';
PRINT 'Reserve Complete'
END
ELSE
PRINT 'this flight is full'
у меня есть этот вопрос:
В1: Следует ли мне использовать уровни блокировки или изоляции? Есть ли какие-либо преимущества для производительности от их использования?
Q2: в соответствии с Q1, какой уровень изоляции или замок я должен использовать