1 并发控制的目的: 一个事务由不同的步骤组成,所涉及的系统资源也不同。这些步骤可以并发执行,以提高系统的吞吐量,改善系统的资源利用率; 。 ��系统中存在着周期不等的各种事务,串行会导致难以预测的时延。如果各个事务所涉及的是数据库的不同部分,采用并发会减少平均响应时间。 ��改善短事务的响应时间; ��在单事务处理系统中,事务一个一个的串行执行,即在一个事务运行的时候,其它事务只能等到这个事务结束以后才能运行。但是事务在执行过程中需要不同资源,有时需要CPU,有时需要读写I/O,如果事务串行执行,则许多系统资源会处于空闲状态。为了充分利用系统资源,提高系统运行效率,发挥数据库共享资源的特点,应当允许多个事务并发执行。 ��事务并发执行的例子:
��在事务并发执行过程中,如果不加控制地并发执行,会产生下列三个问题: ��-�丢失更新 (lost update) ��-�读脏数据 (dirty read) ��-�读值不可复现 (unrepeatable read) (1) 丢失更新 ��如图7-7所示,事务T1和T2并发执行,丢失更新的情况。如果x的初始值为5,则x的结果值为15,正确的结果应该是x的结果值为18,这是因为T1对x的更新被丢失了。 图7-7 丢失更新 |