事物处理与并发控制 授课教师:李 斌 目标: Oracle 中的事务处理是什么 怎样控制Oracle 中的事务处理 Oracle 怎样在数据库中实现并发控制,让多个用户同时访问和修改相同的数据表 1 什么是事务 事务就是在数据库上完成的一个操作
要么全部执行并且存储需要的操作,要么全部撤销已经进行的操作,使得数据库恢复到没有改变之前的状态
2 事务处理控制语句 Oracle 中的一个重要的概念就是没有“开始事务处理”的语句
用户不能显式开始一个事务,事务结束时需要向数据库提交(Commit),或者回滚(Rollback)操作
COMMIT ROLLBACK SAVEPOINT ROLLBACK TO SAVEPOINT SET TRANSACTION SET CONSTRAINTS 2
1 COMMIT处理 当提交时,我们需要处理三个任务: 1、 为我们的事务处理生成SCN(系统改变号)
2、 将所有剩余的已经缓冲的重做日志表项写入磁盘,并且将 SCN 记录到在线重做日志文件中
由 LGWR 执行处理
3、 释放我们的会话所锁定的资源
LGWR 会在下列情况之一发生时执行清理工作: 每隔 3 秒 当 SGA 中的Redo Log Bu ffer Cache 容量超过 1/3 的空间,或者包含了 1MB 或者更多的已经缓冲数据 进行任何事务处理提交 2
2 ROLLBACK 处理 回滚是一项比较耗费资源的操作
当我们不需要存储所作出的修改时,就回滚我们的操作
回滚可以归结为异常处理范畴
3 SAVEPOINT 和ROLLBACK TO SAVEPOINT SAVEPOINT 可以在应用中建立保存点
它可以让用户将单独的大规模事务处理分割成一系列较小的部分
4 SET TRANSACTION SET TRAN