ITPub博客

首页 > 数据库 > Oracle > ORA-01555: snapshot too old

ORA-01555: snapshot too old

原创 Oracle 作者:zlingyi 时间:2015-02-15 11:01:13 0 删除 编辑
今天同事告诉我,代码报错 ORA-01555: snapshot too old,确定是数据库的问题
由于查询时间较长,快照在该查询执行过程中被修改了(清除或者覆盖)。
可以通过v$undostat视图的maxquerylen列查询在过去的一段时间内,最长的查询执行的时间(以秒为单位)。UNDO_RETENTION参数中的时间设置应该至少与maxquerylen列中给出
的时间一样长。Oracle提供如下为新数据库设置撤销保留时间间隔的指导:
1、  OLTP系统:15分钟
2、  混合: 1小时
3、  DSS系统:3小时
4、  闪回查询:24小时
查看undo_retention参数语句
show parameter undo_retention;
修改数据库设置撤销保留时间间隔为1小时
ALTER SYSTEM SET undo_retention=3600 SCOPE=BOTH; 
例文:http://blog.csdn.net/jamesxsy/article/details/7701302

可以通过加大undo表空间和加大undo的retention来解决,另外在写代码的时候尽量批次提交。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28686045/viewspace-1436522/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: shell发邮件
请登录后发表评论 登录
全部评论

注册时间:2014-12-22

  • 博文量
    76
  • 访问量
    117216