谢谢大家了,这个问题怎么解决?分不多了,只能给这些了
事务一:
begin tran
select * from A;
waitfor delay '00:00:30';
commit tran
事务二:
begin tran
update Aset A.X=A.X+100;
waitfor Delay '00:00:15';
select * from A;
commit tran
事务一执行后,立马执行事务二,为什么事务二没有在45秒以后执行,而是在15秒之后执行呢?事务一对A表加上S锁,持续时间是30秒,且先加上S锁,事务二后加上X锁,S锁与X锁不相容,为什么会出现这样的情况?谢谢博主抽出时间帮我回答这个问题。
事务一:
begin tran
select * from A;
waitfor delay '00:00:30';
commit tran
事务二:
begin tran
update Aset A.X=A.X+100;
waitfor Delay '00:00:15';
select * from A;
commit tran
事务一执行后,立马执行事务二,为什么事务二没有在45秒以后执行,而是在15秒之后执行呢?事务一对A表加上S锁,持续时间是30秒,且先加上S锁,事务二后加上X锁,S锁与X锁不相容,为什么会出现这样的情况?谢谢博主抽出时间帮我回答这个问题。
SELECT * FROM sys.dm_tran_locks
S
S
S
IX
IX
X
X
X
X
X
X
X
图中含有这样的一列这样的数据?请问这一列锁是按照什么得出来的?谢谢