zoukankan      html  css  js  c++  java
  • Oracle 9

    什么操作会生成undo

    INSERT生成的UNDO最少,只要记录新的rowid

    UPDATE生成的undo多一点,它要记录修改前的数据中的那部分。

    DELETE生成最多的undo, 因为它要记录整行被删除的数据。

    如果修改的数据上带有index,那么讲生成更多的undo。

    ORA-01555: snpashot too old错误

    什么原因导致这个错误?

    undo段太小

    提交过于频繁

    查询时间太长

    出现snapshot too old错误详解

    (1) 比如undo设置15MB,假设基于这个数据库的事物每分钟生成3.5MB的undo,那么大约3~4分钟,undo段就会被循环重用一次undo段空间。 再这种环境下设置undo段为15MB应该是没有问题的。

    (2) 这个时候又新开发了以个报表,其中一个查询要执行5分钟。

    (3) 由于undo段有可能会在这个查询执行期间被覆盖, 而被覆盖的数据正是这个查询命中的一个块,那么就会收到一个snapshot too old错误。

    解决办法

    适当调整 UNDO_RETENTION

    增大undo段

    调优查询,减少查询时间

  • 相关阅读:
    团队冲刺2---个人工作总结一(5.25)
    第十二周学习进度
    课堂作业——找水王
    个人冲刺07
    第十五周学习进度情况
    构建之法阅读笔记06
    构建之法阅读笔记05
    第十四周学习进度情况
    个人冲刺06
    个人冲刺05
  • 原文地址:https://www.cnblogs.com/xzpp/p/3417065.html
Copyright © 2011-2022 走看看