ORA-01555: 快照过旧 数据库在用job执行 存储过程时出现 ORA-01555: 快照过旧: 回退段号 3280 (名称为 "_SYSSMU3P?? 这个错误,貌似是执行的太慢导致的结果,这个应该怎么解决??谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 啊。这个得修改数据库参数了应该是这个参数undo_retention.show parameter undo_retention看看它的值是多少?一般来说是900,单位是秒这个900的意思是,执行的sql在undo块里保留的时间。如果你的sql执行时间太长,就不够用了。就快照过旧了。 你的undo表空间不够用,增大UNDO表空间大小 1. 提问之前先google。2. Oracle ORA-01555 快照过旧 说明http://blog.csdn.net/tianlesoftware/article/details/4745898 1.你的事务太大,执行时间太长2.UNDO太小,但这个数据说设成物理内存大小左右就行了,之前官方人员非官方推荐是1/3,但显然不够。 但这个如果太大了,大事务未提交被kill后,将来是会滚死人的。3.undo_retention太短,我的业务库是900,仓库是10800 优化sql加快查询速度出现这个提示的原因是你想访问的某些数据从你执行查询开始后到现在被修改多次导致oracle找不到它最原始的状态 原因:SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks)。解决:(1)增加UNDO表空间大小(2)增加undo_retention 时间,默认只有15分钟(3)优化出错的SQL,减少查询的时间,首选方法(4)避免频繁的提交-- 引自tianlesoftware博文 本来回滚段的处理 oracle 9i以后就是默认 自动管理了。你这里可能是回滚表空间不够大,同时进行大的事务导致报错。 帮忙写个函数 默认安装的Oracle数据库要如何做优化? VC + ADO 连接oracle数据库 这条SQL语句如何写 在线等oracle函数问题 如何在ORACLE中实现两表中的UPDATE结合. help!! 我从来没见过的删除记录时出现的问题(急救,ORACLE相关) 谁用过PB6.5的ORACLE 7.3连ORACLE8i吗? 新学oracle各种问题,net service 配置 oracle 8.1.7 误删除一些表的数据后,如何恢复?求高手解答 用PlSqlDeveloper远程访问Oracle11g
应该是这个参数undo_retention.
show parameter undo_retention
看看它的值是多少?一般来说是900,单位是秒
这个900的意思是,执行的sql在undo块里保留的时间。
如果你的sql执行时间太长,就不够用了。
就快照过旧了。
1. 提问之前先google。
2.
Oracle ORA-01555 快照过旧 说明
http://blog.csdn.net/tianlesoftware/article/details/4745898
2.UNDO太小,但这个数据说设成物理内存大小左右就行了,之前官方人员非官方推荐是1/3,但显然不够。
但这个如果太大了,大事务未提交被kill后,将来是会滚死人的。
3.undo_retention太短,我的业务库是900,仓库是10800
SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks)。解决:
(1)增加UNDO表空间大小
(2)增加undo_retention 时间,默认只有15分钟
(3)优化出错的SQL,减少查询的时间,首选方法
(4)避免频繁的提交-- 引自tianlesoftware博文