oracle事务_笔记4:非分布式PL/SQL代码块中的COMMIT
时间:2014-04-19 12:24 来源: 我爱IT技术网 作者:微风
非分布式PL/SQL代码块中的COMMIT
从Oracle 6最早引入PL/SQL以来,PL/SQL一直都透明地使用异步提交。这种做法是可行的,因为从某种意义上讲所有PL/SQL都类似于批处理程序,即在PL/SQL过程完全执行完之前,最终用户无法知道过程的结果。也正是因为这个原因,这种异步提交只能用于非分布式的PL/SQL代码块;如果涉及多个数据库,会有两个对象(两个数据库)依赖于提交的持久性。倘若两个数据库都依赖于提交的持久性,就必须采用同步协议,否则可能在一个数据库中改变已经提交,而在另一个数据库中未提交。
因此,PL/SQL会发展到采用异步提交,使得PL/SQL中的COMMIT语句不必等待物理I/O完成(从而避免“日志文件同步”等待)。这并不是说完成提交并把控制返回到应用的PL/SQL例程所做的改变都是不持久的——PL/SQL返回到客户应用之前确实会等待所生成的redo写至磁盘,不过只是在将要返回之前等待一次。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5237.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
