dinghao

记录成长点滴

 

事务处理

一条单独的DML会被认为是一个事务,即使没有使用begin transaction,end transaction.
事务间缺乏隔离性会引发下面三类并发问题。
脏读是在第一个事务没有结束,第二个事务读取到第一个事务的修改的数据。
不可重复读是第二个事务没有结束,第二个事务读取到第一个事务以及提交的数据(第一个事务已经结束)。(select)
幻影行(Phanatom Read)是第二个事务没有结束,第二个事务读取到第一个事务以及提交的数据(第一个事务已经结束),只是where子集。(select Where)
三类问题都是由于两个事务的执行时刻出现了交集,如果线性执行就没有隔离性问题。
事务之间必须是隔离的,他们不能访问到对方。事务必须使用事务开始时数据库中存在的记录集合,而不应该访问到被别的事务修改后的集合,直到事务结束。
sqlserver默认为ReadCommitted级别,允许后两种并发问题。
事务间的隔离是用锁来实现的

posted on 2006-10-17 14:31  思无邪  阅读(387)  评论(0编辑  收藏  举报

导航