事务隔离的种级别

一直以为自己的数据库学的还不错,但今天作了点极端条件下的测试,发现自己的知识欠缺那么多。
不过没有关系,意识到了差距,能够弥补就成。以下内容摘自网络

脏读(dirty reads)

一个事务读取了另一个未提交的并行事务写的数据。


不可重复读(non-repeatable reads)

一个事务重新读取前面读取过的数据, 发现该数据已经被另一个已提交的事务修改过。

幻读(phantom read)

一个事务重新执行一个查询,返回一套符合查询条件的行, 发现这些行因为其他最近提交的事务而发生了改变。

隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read)
读未提交(Read uncommitted) 可能 可能 可能
读已提交(Read committed) 不可能 可能 可能
可重复读(Repeatable read) 不可能 不可能 可能
可串行化(Serializable ) 不可能 不可能 不可能

 

http://epub.itpub.net/3/4.htm

l          更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。

l          脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。

l          非重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。(A transaction rereads data it has previously read and finds that another committed transaction has modified or deleted the data.  )

l          幻像(phantom read):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。(A transaction reexecutes a query returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additional rows that satisfy the condition.  )

你可能感兴趣的:(.net)