查询树的启发式优化

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

查询树的启发式优化:1选择运算应尽可能先做2把投影运算和选择运算同时进行。

事务;所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束,COMMIT 表示提交,即提交事务的所有操作。ROLLBACK表示回滚。

事务具有四个特征:原子性,一致性,隔离性,持续性。

故障的种类:事务内部的故障,系统故障(转故障),介质故障(硬故障)

恢复策略:事务故障的恢复,系统故障的恢复,介质故障的恢复

数据库是一个共享资源,可以供多个用户使用,允许多个用户同时使用的数据库系统称为多用户数据库系统。

封锁是实现并发控制的一个非常重要的技术,所谓封锁就是事务T在对某个数据对象例如表,记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控释,在事务T释放它的锁之前,其他的事务不能更新此数据对象。

封锁类型:排它锁(写锁),共享锁(读锁)。

排它锁又称为写锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁,这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。

死锁的预防:一次封锁法,顺序封锁法

诊断死锁方法:超时法,事务等待图法

DBMS的并发控制子系统一旦检测到系统中的存在死锁,就要设法解除,通常采用的方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有的锁,使其他事务得以继续运行下去(牺牲法)。

可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。

可串行性是并发事务正确调度的准则。按这个准则规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。

所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。

事务分为两个阶段,第一个阶段是获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁。封锁对象的大小称为封锁粒度。

封锁粒度与系统的并发度和发并控制的开销密切相关。相关地看,封锁的粒度越大,数据库所能够封锁的数据单元就越少,

如果在一个系统中同时支持多种封锁粒度供不同的事务选择是比较理想的,这种封锁方法称为多粒度封锁。

显示封锁是应事务的要求直接加到数据对象上的封锁;隐式封锁是该数据对象没有独立加锁,是由于其上级结点加锁而使该数据对象加上了锁。

意向锁:如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。

相关文档
最新文档