[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个回答

  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的次数
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐