作为每read committed isolation level on wiki读取已提交隔离级别下的更新?
读致力于
在该隔离电平,基于锁的并发控制DBMS执行保持写锁(在选定数据中获取),直到事务结束, 但读锁被只要SELECT操作被执行
按照上面的语句,它看起来像,每当任何更新语句是exceute是否释放其对整个表(codesnippet 1)或选定的范围(codesnippet 2), READ C ommitted隔离级别将保持锁定,直到提交
codesnippet 1
begin tran
update Employee set category = "permanent"
...
end tran // lock will be released here
codesnippet 2
begin tran
update Employee set category = "permanent" where id =1
...
end tran // lock will be released here
第2节: -
但是按照同一链路上Isolation Levels vs Lock Duration
部分看起来像在update on selected range
情况下,将导致锁被relaesed一次更新被执行。它不会 等到交易ened
begin tran
update Employee set category = "permanent" where id =1
// lock will be released here
........
end tran
我的问题是部分正确2或第1?
您正在使用哪些DBMS?锁定行为(特别是对于并发读取和写入)与DBMS高度相关 –
@ a_horse_with_no_name sql server –