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。
并发事务的缺点是并发事务的执行可能会导致不一致。