iteye_13980 2011-04-18 10:07
浏览 420
已采纳

[oracle] ORA-01555错误的过程以及影响

ORA-01555, 快照太旧, 这个错误应该是一个很经典的Oracle错误了, 我能在网上找到的原因: 是说查询太长时间, 有insert/update动作时就会容易造成这种错误. 然而我对其中的细节到现在也不明白, 还请iteye的大侠, 高手们指点.

  1. 发生ORA-01555, 会整体影响Oracle Server, 进而对其他session的响应也会变慢吗?

  2. 在一个session中的query语句执行后, 直到发生ORA-01555之前,是否有部分数据返回到client?

  3. ORA-01555对本session的影响是一个长时间的过程, 还是仅仅是一个瞬间错误的影响?
    也就是说: query过程中, 返回结果越来越慢, 直到发生ORA-01555, 还是在发生ORA-01555之前query的速度一直是正常的?

  4. 如果一处程序不断地在update/insert自己查询范围内的数据, 我想理论上更容易造成ORA-01555错误.
    这种情况下: update/insert和query的session是分开好, 还是共用好?

  • 写回答

1条回答

  • czmmiao 2011-04-18 12:42
    关注
    1. 发生ORA-01555, 会整体影响Oracle Server, 进而对其他session的响应也会变慢吗? 答:长查询需要耗费较多的内存,如果内存不够大,会影响到其他session,使其相应较慢!当然undo数据的回收和使用也会在一定程度下影响性能。
    2. 在一个session中的query语句执行后, 直到发生ORA-01555之前,是否有部分数据返回到client? 答:有部分数据返回
    3. ORA-01555对本session的影响是一个长时间的过程, 还是仅仅是一个瞬间错误的影响? 也就是说: query过程中, 返回结果越来越慢, 直到发生ORA-01555, 还是在发生ORA-01555之前query的速度一直是正常的? 答:01555影响的是瞬间的过程,当undo数据不存在的时候且查询需要用到该undo数据的时候立即发生。其他请参见解答1。
    4. 如果一处程序不断地在update/insert自己查询范围内的数据, 我想理论上更容易造成ORA-01555错误.这种情况下: update/insert和query的session是分开好, 还是共用好? 答:容易造成01555是undo表空间设置不合理造成的,可以通过增大undo表空间大小,设置undo_guarantee,undo_retention来减少发生01555的次数
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入