<p>我所用的是分析库 处理大量数据 UNDO空间为32G+100M </p>
<p>昨天大部分过程都报 ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中) 错误 导致过程没执行下去。</p>
<p>平时还过得去! 因为新建6个过程 正在update数据 都是大事务! 大部分事务都是每1万行提价一次。</p>
<p>到了临晨时分 正常的一堆过程也跑起来了,大部分都是MERGE 7天的数据量,而且全MERGE后才COMMIT 结束事务。</p>
<p>DBA说 UNDO_RETETION=900秒 是事务结束后再保持900秒,当空间还有的时候。大事务所产生的UNDO一致保留到事务结束为止。</p>
<p>我的DBA大致意思 说是块操作 UPDATE 一个块中100行 会申请100个UNDO块</p>
<p>昨天大部分过程都报 ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中) 错误 导致过程没执行下去。</p>
<p>平时还过得去! 因为新建6个过程 正在update数据 都是大事务! 大部分事务都是每1万行提价一次。</p>
<p>到了临晨时分 正常的一堆过程也跑起来了,大部分都是MERGE 7天的数据量,而且全MERGE后才COMMIT 结束事务。</p>
<p>DBA说 UNDO_RETETION=900秒 是事务结束后再保持900秒,当空间还有的时候。大事务所产生的UNDO一致保留到事务结束为止。</p>
<p>我的DBA大致意思 说是块操作 UPDATE 一个块中100行 会申请100个UNDO块</p>
在处理大量数据时遇到ORA-30036错误,这通常是因为UNDO空间不足。本文讨论了在执行大型事务时如何避免此类问题,特别是关于UNDO_RETENTION参数的理解及其对性能的影响。
2972

被折叠的 条评论
为什么被折叠?



