【发布时间】:2012-03-16 12:09:39
【问题描述】:
我有一个使用 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'
我有这些问题:
Q1:我应该使用锁还是隔离级别?使用一个对性能有什么好处吗?
Q2:根据 Q1 我应该使用哪个隔离级别或锁定
【问题讨论】:
标签: isolation-level