SQL SERVER并发控制中隔离级别的实现
2020-04-10徐爱芸
世界家苑 2020年1期
徐爱芸



摘要:为了充分利用系统资源,发挥共享资源的特点,数据库系统允许执行多个并发事务,在任何给定的时刻有可达数百个正在执行的却只部分完成的事务,这是由用户来选择一个可以保证应用程序正确执行并且能够使并发度最大的隔离级别的执行选项。
关键词:事务;隔离级别;并发执行;并发控制
数据库系统的最大特点是共享,允许多个用户或多种应用相互覆盖地共享数据集合。在互联网时代,成千上万的不同地点的计算机每秒执行上百的操作,同一时间有多个操作影响同一数据,即存在并发操作,如果不加以控制,可能带来数据不一致问题:更新丢失;不可重复读;读脏数据。为保证并发事务执行时数据的正确性和一致性,对并发事务要进行控制。
1 事务管理器
负责事务的正确执行是事务管理器,它接受来自应用的命令,包括BEGIN TRANSACATION、COMMIT、ROLLBACK,而将事务操作传给日志管理器。并发控制管理器对并发执行的事务进行控制,通过加锁和封锁协议保证并发执行的事务保持隔离性。其流程如图1所示。
2 事务隔离级别
在实际开发中,直接操作数据库中各种锁的几率相对比较少,更多的是利用数据库提供的四个隔离级别:未提交读、已提交读、可重复读、可序列化,用隔离封装锁。隔离级别从上到下依次增加,级别越低,引起的问题也就比较多,比如脏读、丢失更新等;隔离级别越高,需要管理更多的锁,无法并行处理,性能方面又受损。在实际的系统中只需要根据业务需求选择一种当适合的隔离级别。……
登录APP查看全文
