SqlServer2008实例19事务、锁定和并发

本文介绍了SQL Server 2008中的事务隔离级别,包括脏读、不可重复读取和幻读等问题,以及如何通过锁定机制防止这些并发问题。SQL Server提供四种隔离级别,如READ COMMITTED、REPEATABLE READ等,以平衡并发性和数据一致性。事务和锁定在数据库并发控制中起着关键作用,不同的隔离级别会影响并发性能和数据的正确性。
摘要由CSDN通过智能技术生成

    隔离性(isolation)是ACID中的一个属性。事务隔离是指由某个事务作出的修改能被数据库产生的其他事务看见的程度(例如在数据库访问并发的条件下)。对于最高级的隔离,每一个事务产生就好像在同一时间只有_一个事务存在一样,它看不到其他事务作出的修改。对于最低级的隔离,任何事务进行的操作,无论是否提交都能被其他事务看见。
    ANSI/ISO SQL标准定义了并发事务之间的4种交互类型,如下所示:

  • 脏读(dirty read):如果一个事务正在更新一行,而第二个事务在第一个事务提交之前读取了那行,就会发生这种情况。如果原来的更新回滚了,那么第二个事务读取的数据就不一样。这就是脏读。
  • 不可重复读取(norepeatabte read):当一个事务在更新数据,第二个事务在其更新过程中读取相同的数据时会发生这种情况。更新前获取的数据和更新后获取的数据不一致。
  • 幻读(phantom read):事务产生两次读取,并且在两次读取之间底层的数据有插入的或是被删除的数据。它会造成两个查询的结果行有所不同。在一个查询中出现了但另一个查询未出现的仍称为“幻行”。
  • 更新丢失(lost update):如果两个事务都更新了同一行的值,并且最后一次更新的事务“取得了胜利”,那么第一次的更新就丢失了。

    SQL Server使用锁定机制来控制并发事务的竞争行为。为了避免脏读、不可重复读等并发问题,SQL Server通过锁来控制对数据库资源的访问,实现某种级别的事务隔离。表3-4描述了SQL Server中可用的隔离级别。

                          SQL Serv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值