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

因此,在数据库的日常维护工作中,如果只是一次两次碰到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包扫描相关对象。

(0)

相关推荐

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

    因此,在数据库的日常维护工作中,如果只是一次两次碰到ORA-01555错误,一般都先忽略,但是如果经常碰到该错误,则要进行一些调整以避免该错误的再次发生. 1. 为什么会产生ORA-01555错误?这个错误是由数据库的读一致性(Read consistency)引起的,当查询需要访问被修改的数据时,它会到undo里访问该数据的前镜像,如果该前镜像已被覆盖,查询语句就会返回ORA-01555的错误. 2. 导致ORA-01555错误的主要原因有哪些?1) undo太小比较直观的解决方法是DBA告诉

  • 令人抓狂的100个神经签名推荐看

    1.柏芝你走吧,我舍不得韩红!!!    2.按猪的审美观,我基本算得上是个帅哥~ 3.我不是你想象中的那么完美那么坚强,金钱和美女就足以把我征服! 4.见到我以后你会突然发现--原来帅也可以是这样的具体呀~ 5.姑姑,十六年后我们断肠崖见,到时候别忘了给我发短信! 6.自从两个妓女自称是某名牌大学的毕业生后,我现在一般都自称文盲! 7.天使和魔鬼拿我的灵魂拔河玩~(转载请注明天涯社区) 8.我曾经是个天使,真的!在降临人世间时上帝慈祥地对我说:"去吧,孩子,你是个为补考而生的男人--"

  • 完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题

    最近用zend studio7.2 遇到个问题,就是打开内容很多的php页面(>500行)时,编辑保存速度奇慢.根据网络上google到的资料 ,更改了content Assist(7.1及之前版本为code Assist) ,将延时时间直接设置为0 .问题解决,至于很多资料提到的200以下效果不明显,个人猜测是因为机器配置和页面代码量不同.俺的工作机配置

  • 详解关闭令人抓狂的ESlint 语法检测配置方法

    刚刚开始的小伙伴是不是空格报错少一行报错各种错?是不是觉得快被限制的失去了自由的思绪了?受折磨后找到了不错的文章来取消eslint语法检测限制,作为学习笔记摘自segmentfault 其实我并不反对这些语法检测,但是像许多反个人意愿的那就真的不得不吐槽了,比如vue-cli脚手架创建的默认eslint规则: 代码末尾不能加分号 ; 代码中不能存在多行空行 tab键不能使用,必须换成两个空格 代码中不能存在声明了但未使用的变量 以上规则个人认为真的反人类!调试代码太难了. 关闭eslint 这里

  • JavaScript中令你抓狂的魔术变量

    在存在这么一个变量 tt, 它满足下面的代码. 代码执行完毕后 ,errCount=0 而且 断言函数也从未 alert 信息 代码如下:   复制代码 代码如下: <script>   var tt=/* 请在这里定义tt */;   var errCount=0  //全局变量,用来记录 assert 函数出现断言宣告的次数  /*   断言函数   如果v为假,该函数就 alert("assert error"),并累加计数器 errCount   如果v为真,就什么

  • JVM内存管理之JAVA语言的内存管理详解

    引言 内存管理一直是JAVA语言自豪与骄傲的资本,它让JAVA程序员基本上可以彻底忽略与内存管理相关的细节,只专注于业务逻辑.不过世界上不存在十全十美的好事,在带来了便利的同时,也因此引入了很多令人抓狂的内存溢出和泄露的问题. 可怕的事情还不只如此,有些使用其它语言开发的程序员,给JAVA程序员扣上了一个"不懂内存"的帽子,这着实有点让人难以接受.毕竟JAVA当中没有malloc和delete.没有析构函数.没有指针,刚开始接触JAVA的程序员们又怎么可能接触内存这一部分呢,更何况有不

  • jQuery mobile 移动web(6)

    jquery mobile 针对移动端设备的事件类型. 1.touch 事件. tap 快速触摸屏幕并且离开,类似一种完整的点击操作.   taphold 触摸屏幕并保持一段时间.   swipe 在1秒内水平移动30px屏幕像素上时触发.   swipeleft 向左侧滑动   swiperight 像右侧滑动. 2.方向改变事件 orientationchange 事件函数当移动设备的方向发生改变触发,在事件的回调函数内的第二个参数返回一个用于识别当前方向的参数,   该参数有两种返回值:p

  • THREE.JS入门教程(1)THREE.JS使用前了解

    Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D.但是目前这项技术还处在发展阶段,资料极为匮乏,爱好者学习基本要通过Demo源码和Three.js本身的源码来学习. 国外网站 aerotwist.com 有六篇较为简单的入门教程,我尝试着将其翻译过来,与大家分享. 我在一些实验项目中使用了Three.js,我发现它对快速上手浏览器3D编程确实很有帮助.通过Three.js,你不仅可以创建相机.物体.光线.材质等等,还可以选择

  • JavaScript中的数学运算介绍

    JavaScript中,数学运算可藉由两种操作来实现: 1.+.-.*./.%等操作符. 2.使用Math对象的计算函数.比如,用Math.pow(2,3)来计算2的3次方. 与Java不同,JavaScript中的数学运算不会抛出任何错误.计算结果的溢出.除以0.对负数进行开方这些操作都是合法的,其结果为JavaScript中的特殊值:正负Infinity(无限).正负0.NaN(非数): 1.正负Infinity.当计算结果比JavaScript所能表示的最大数(Number.MAX_VAL

  • 正则表达式学习经验分析第1/2页

    当然,为了指定一种模式,使用...这种记号是不够精确的.你需要精确地指定什么样的字符排列是一个合法的匹配.当描述某种模式时,你需要使用一种特殊的语法. 这里有一个简单例子.正则表达式 [Jj]ava.+ 匹配下列形式的任何字符串: 首字母是J或j  后续的三个字母是ava  字符串的剩余部分由一个或多个任意字符组成 例如,字符串"javaness"匹配这个特殊的正则表达式,但是字符串"Core Java"却不匹配. 如你所见,你需要了解一点语法来理解正则表达式的含意

随机推荐