暂无图片
关于ora-01555的相关疑问
我来答
分享
朱德润
2019-09-19
关于ora-01555的相关疑问

1.对于普通update一条记录row1,undo中保留的是row1这条记录的前镜像还是row1这个记录所在的block整个的前镜像?如果是这个记录的前镜像,那么一个大的查询事务(假设是游标查询大表 )都会一条一处理,假设row1的undo数据被覆盖,后面再次查询到row2(和row1同一个block)就会报1555错吗?还是只有再次查询到row1才会报1555的错误?

2.为何有些1555的错误没有显示undo的表空间名?

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
朱德润

tmp_3025e0df4b004688ae88f7665fe1e09f0ba6a299c240ea1d.jpg

暂无图片 评论
暂无图片 有用 0
范计杰

1、UNDO记录的前镜像是以行为单位,读取row1时已经生成了该块的CR块,如果row1,row2两次读取中间间隔较长,需要再次读取该块时,生成的CR块已经刷出去了,需要重新生成,ROW1的前镜像已经找不到了才会报1555

暂无图片 评论
暂无图片 有用 0
朱德润

等于记录在undo中的CR块改变的内容只有row1 但是它在undo中的大小还是占用一个块的大小?可以这么理解吧?

2.为何1555错误为啥有时候没有显示undo名?图片已上传!

暂无图片 评论
暂无图片 有用 0
朱德润

或者说:假设row的大小1K 那undo的CR块是1K还是8K(假设块大小是8K)?

暂无图片 评论
暂无图片 有用 0
范计杰

1、UNDO中记录的是这一行的前镜像,在UNDO中也是以行的形式存在,一个UNDO块可以存放多个行的前镜像(可能来自不同的数据块)

2、UNDO SEGMENT为空,我也没遇到到

暂无图片 评论
暂无图片 有用 0
朱德润

明白了 谢谢!

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏