[Oracle] 浅析令人抓狂的ORA-01555问题

所属分类: 数据库 / oracle 阅读数: 117
收藏 0 赞 0 分享

因此,在数据库的日常维护工作中,如果只是一次两次碰到ORA-01555错误,一般都先忽略,但是如果经常碰到该错误,则要进行一些调整以避免该错误的再次发生。

1. 为什么会产生ORA-01555错误?
这个错误是由数据库的读一致性(Read consistency)引起的,当查询需要访问被修改的数据时,它会到undo里访问该数据的前镜像,如果该前镜像已被覆盖,查询语句就会返回ORA-01555的错误。

2. 导致ORA-01555错误的主要原因有哪些?
1) undo太小
比较直观的解决方法是DBA告诉数据库应用最长的查询需要多长时间,并把UNDO_RETENTION设为这个值,同时相应增大undo表空间大小。
但要从根本上解决undo太小问题,还得从应用端代码调优入手,减少查询的运行时间。

2) 延迟的块清除
这种情况比较少见,特别是在OLTP系统里,在OLAP系统里可能会碰到,解决方法是在每次大量的insert或update之后,记得用DBMS_STATS包扫描相关对象。

更多精彩内容其他人还在看

oracle快速删除重复的记录

oracle快速删除重复的记录
收藏 0 赞 0 分享

Oracle数据库系统紧急故障处理方法

Oracle数据库系统紧急故障处理方法
收藏 0 赞 0 分享

Oracle SQL性能优化系列学习一

Oracle SQL性能优化系列学习一
收藏 0 赞 0 分享

自动备份Oracle数据库

自动备份Oracle数据库
收藏 0 赞 0 分享

Oracle Index 的三个问题

Oracle Index 的三个问题
收藏 0 赞 0 分享

Oracle 数据库操作技巧集

Oracle 数据库操作技巧集
收藏 0 赞 0 分享

Oracle组件实现动态Web数据库

Oracle组件实现动态Web数据库
收藏 0 赞 0 分享

ORACLE常见错误代码的分析与解决二

ORACLE常见错误代码的分析与解决二
收藏 0 赞 0 分享

ORACLE常见错误代码的分析与解决三

ORACLE常见错误代码的分析与解决三
收藏 0 赞 0 分享

在Oracle 8x实现自动断开后再连接

在Oracle 8x实现自动断开后再连接
收藏 0 赞 0 分享
查看更多