|
原帖由 sqysl 于 2009-6-13 23:20 发表 ![]()
TOM的书里说的异步不是内部机制,而是指当你在客户端执行一个PL/SQL时,客户端不必等所有的REDOLOG都写完才返回,而是客户端可以直接返回接着执行其他任务,而此时数据库后台也许还在写REDO LOG,当没有完全成功COMMIT时,会向客户端返回信息,我是这么理解的,可以试试。
TOM 大神的意思是 指 当我们在PL SQL中反复的进行COMMIT 时 redo 是不会产生同步等待的 也就是log file sync 这一点 可以通过 v$sysstat 验证
在EYGLE 大哥的书中介绍道
类似于这样的recursive calls 只会记录我们最后一次COMMIT时的RBA
所以推断在 过程 未完成时 使用shutdown abort 有一定机会可以让事物无法成功前滚。
例如 插入10万数据 每万条一次commit 并且输出一个序号
当序号达到某个值的时候 shutdown abort。
这样看看数据库中的条数是否跟 这个序号相同 就应该得出结论了……
不知道我的思考是否有遗漏 比如UNDO 可以使表前滚。
但是 如果REDO 的修改没有被记录在文件中的话 那么也就不会记录UNDO 空间的地址,
如果有条件的朋友可以尝试一下 否则 我晚上回家 给出答案。 |
|