事务
事务的特征
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持久性(Durability)
- 事务会把数据库从一种一致状态转变为另一种一致状态。
- Oracle没有“开始事务处理”的语句。用户不能显式地开始一个事务处理
- 如果发出COMMIT或ROLLBACK,就会显式地结束一个事务
- ROLLBACK TO SAVEPOINT 命令不会结束事务
- COMMIT的完整形式是COMMIT WORK,二者等价, COMMIT会结束事务,并使得已做的所有
修改成为永久性的(持久保存) - ROLLBACK完整形式是ROLLBACK WORK,二者等价, ROLLBACK会结束事务,并撤销正在进
行的所有未提交的修改,把数据库块恢复到事务开始之前的状态 - 无论事务处理的规模如何,提交都非常快速
提交时执行的任务
- 为用户的事务处理声称SCN(system change number,系统改变编号)。这是Oracle的内部时钟,可以称为数据库时间, 事务处理提交时递进
- 将所有剩余的已经缓冲的重做日志表项写入磁盘,并且将SCN记录到在线重做日志文件中。这要由数据库后台进程LGWR执行。这一步实际上就是所谓的“提交”,使事务处理永久地生效。
- 释放用户会话所占有的所有锁定。
事务原子性的级别
- 语句级原子性
语句所导致的任何副作用(例如触发器操