在DBMS中,调度是什么意思?
事务必须满足DBMS的ACID特性,即
原子性 - 全部执行或全部不执行事务。
一致性 - 数据库在事务执行前后都必须保持一致。
隔离性 - 事务必须以隔离的形式执行。
持久性 - 在任何情况下发生故障都应该能够回滚。
调度定义为事务的执行顺序。调度维护每个单独事务中操作的顺序。调度是事务操作的安排。调度可能包含一组事务。
我们已经知道事务是一组操作。为了并发运行事务,我们以交错的方式安排或调度它们的操作。
调度分为两类,即:
串行调度
此调度中存在的事务按顺序执行,在Ti指令完成后,将执行Tj指令,其中j=i+1。
串行调度保证一致性如下:
对于2个事务,可能的串行调度总数 = 2。
对于3个事务,可能的串行调度总数 = 6。
2 transaction 3 transaction T1->T2 T1->T2->T3 T2->T1 T1->T3->T2 T2->T1->T3 T2->T3->T1 T3->T1->T2 T3->T2->T1
如果n = 事务数,则可能的串行调度数 = n!。
串行调度总是给出正确的结果。但是,为了提高时间效率,我们遵循并发调度。因此,我们必须确保并发调度的可串行化。
并发调度
多个事务可以以交错的方式执行,但要遵守上述ACID特性。
优点
并发调度的优点如下:
提高吞吐量(即每单位时间完成的事务数)。
减少等待时间。
示例
T1= 90sec T2= 500sec T3= 5sec.
如果我们按T1->T2->T3顺序执行,则事务T3等待590秒,因此我们采用非串行或并发事务来减少等待时间。
即 T3 -> T1 -> T2。
并发事务的缺点是并发事务的执行可能导致不一致。
广告