LOB字段处理:LOB(大对象)字段的撤销处理与普通数据有所不同,如果处理不当(如PCTVERSION或RETENTION设置不合理),也可能导致ORA-01555错误。 延迟块清除(Delayed Block Cleanout):在某些情况下,Oracle的延迟块清除机制可能导致无法准确判断查询SCN和事务提交SCN的先后关系,从而引发ORA-01555错误。 解决ORA-01555错误的常见...
从之前对ORA-01555错误的成因分析可以知道,这个ORA-01555错误,正是由于表上存在未清除的事务,同时导出时间过长,UNDO段头的事务表被全部重用,ORACLE在查询到有未清除事务的块时不能确定事务提交时间是否早于导出(查询)开始时间,这时候就报ORA-01555错误。 要解决这个错误,除了提高性能,那么从另一个角度来思考这个问题...
增加Undo空间:ORA-01555错误的一个常见原因是Undo段不足。可以通过增加Undo表空间的大小来解决这个问题。在Oracle中,可以使用ALTER TABLESPACE命令来增加Undo表空间的大小。 优化查询:减少查询的运行时间也是解决ORA-01555错误的有效方法。优化查询可以降低对Undo段的需求,从而减少出现ORA-01555错误的可能性。优化查询的方法...
SQL> print :cc ERROR: ORA-01555: snapshot too old: rollback segment number 20 with name "_SYSSMU20$" too small no rows selected 以上两个例子看起来是好像很类似,但是,他们的本质区别是:第一个实际上是在进行一致性读得时候发生的1555错误,而第二个例子是在判断是否需要进行一致性读得时候发生的1555...
ora-01555 产生ORA-01555错误主要有三种可能性: 1、UNDO段对于系统所运行的工作负荷太小; 2、在循环过程中有事务提交是造成ORA-01555错误的最常见的原因; 3、block cleanout; 解决ORA-01555错误的解决方案有下面几种: 1、适当的设置UNDO_RETENTION参数值(大于事务执行可能需要的最长时间);如果UNDO_RETENTION参数值...
ora-01555 产⽣ORA-01555错误主要有三种可能性:1、UNDO段对于系统所运⾏的⼯作负荷太⼩;2、在循环过程中有事务提交是造成ORA-01555错误的最常见的原因;3、block cleanout;解决ORA-01555错误的解决⽅案有下⾯⼏种:1、适当的设置UNDO_RETENTION参数值(⼤于事务执⾏可能需要的最长时间);如果...
ORA-01555错误的原因分析 1、SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块。 2、SQL语句执行过程中,访问到的块,在进行延迟块清除时,不能确定该块的事务提交时间...
ORA-01555的直观解释是“snapshot too old”,也就是快照太旧,其根本含义就是查询需要的前镜像过于“久远”,已经无法找到了。可以想象,如果一个历时数个小时或十几个小时的查询,如果最后遭遇ORA-01555错误而失败,会是多么令人沮丧的一件事。一直以来,ORA-01555都是ORACLE最为头痛的问题之一。
ORA-01555错误的原因分析 1、SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块。 2、SQL语句执行过程中,访问到的块,在进行延迟块清除时,不能确定该块的事务提交时间...
高频错误:ORA-01555深入剖析 黄玮(Fuyuncat) 资深Oracle DBA,个人网站www.HelloDBA.com,致力于数据库底层技术的研究,其作品获得广大同行的高度评价. ORA-01555(快照过旧)问题让很多人感到十分头痛。最近我们的生产系统上也报出了ORA-01555错误。就结合这次案例将ORA-1555问题作个案例分析,并浅析产生原因和各种解决...