全球旧事资料 分类
事物处理与并发控制
授课教师:授课教师:李斌目标:Oracle中的事务处理是什么怎样控制Oracle中的事务处理Oracle怎样在数据库中实现并发控制,让多个用户同时访问和修改相同的数据表
1什么是事务
事务就是在数据库上完成的一个操作。要么全部执行并且存储需要的操作,要么全部撤销已经进行的操作,使得数据库恢复到没有改变之前的状态。
2事务处理控制语句
Oracle中的一个重要的概念就是没有“开始事务处理”的语句。用户不能显式开始一个事务,事务结束时需要向数据库提交(Commit),或者回滚(Rollback)操作。COMMITROLLBACKSAVEPOINTROLLBACKTOSAVEPOINTSETTRANSACTIONSETCONSTRAINTS
21COMMIT处理
当提交时,我们需要处理三个任务:1、为我们的事务处理生成SCN(系统改变号)。2、将所有剩余的已经缓冲的重做日志表项写入磁盘,并且将SCN记录到在线重做日志文件中。由LGWR执行处理。3、释放我们的会话所锁定的资源。LGWR会在下列情况之一发生时执行清理工作:每隔3秒当SGA中的RedoLogBufferCache容量超过13的空间,或者包含了1MB或者更多的已经缓冲数据
f进行任何事务处理提交
22ROLLBACK处理
回滚是一项比较耗费资源的操作。当我们不需要存储所作出的修改时,就回滚我们的操作。回滚可以归结为异常处理范畴。
23SAVEPOINT和ROLLBACKTOSAVEPOINT
SAVEPOINT可以在应用中建立保存点。它可以让用户将单独的大规模事务处理分割成一系列较小的部分。
24SETTRANSACTION
SETTRANSACTION必须是你的事务处理的第一条语句,用来设置事务之间的隔离级别。规定事务处理的隔离级别规定为用户事务处理所使用的特定回滚段命名用户事务处理
SETTRANSACTIONREADONLYSETTRANSACTIONREADWRITESETTRANSACTIONISOLATIONLEVELSERIALIZABLESETTRANSACTIONISOLATIONLEVELREADCOMMITED1、READONLY命令SETTRANSACTIONREADONLY将会做两件事情。将会做两件事情首先而且最明显的是:操作。首先而且最明显的是:它会确保你无法执行修改数据的DML操作。如果你要执行这样的操作,就会报错。的操作,就会报错。另外,READONLY可以使得我们把数据库视图冻结在某个时间点。例如:我们需要获得上午10:00使,数据库中某个数据表中的数据,而这张表又与其它很多数据表之间存在复杂的关联关系。数据库的其它用户有可能继续对其它的一些表随时都在进行DML操作。我们如何获得10:00时我们需要的数据?一种方法是:停止其它用户的所有活动,锁定相关的数据表。好的方法是:用户可以使用SETTRANSACTIONREADONLY语句,冻结10:00的语句,:用户r
好听全球资料 返回顶部