转载原文如下:
SET TRANSACTION READ ONLY实际上是实现数据库四大事务(ACID)中隔离性(Isolation)的一种手段,用来将数据的读一致性定在某一时间点,即不管其他事务如何更 改数据(不能在当前session中再使用自治事务),在当前事务中进行查询的结果始终不变。由于Oracle的读一致性是通过undo段来实现的,所以 如果在此期间DML修改的数据量很大而undo空间设置过小可能会导致ORA-01555(快照过旧)错误。
这句话中有几个信息:
A、如何设置事务的隔离
B、读一致性的保障是通过undo实现的
C、如果DML数据量很大而undo设置过小,则会导致ora-15555错误
SET TRANSACTION READ ONLY实际上是实现数据库四大事务(ACID)中隔离性(Isolation)的一种手段,用来将数据的读一致性定在某一时间点,即不管其他事务如何更 改数据(不能在当前session中再使用自治事务),在当前事务中进行查询的结果始终不变。由于Oracle的读一致性是通过undo段来实现的,所以 如果在此期间DML修改的数据量很大而undo空间设置过小可能会导致ORA-01555(快照过旧)错误。
这句话中有几个信息:
A、如何设置事务的隔离
B、读一致性的保障是通过undo实现的
C、如果DML数据量很大而undo设置过小,则会导致ora-15555错误
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/759027/viewspace-753626/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/759027/viewspace-753626/