update tablename set a=1 where b=1
delete from tablename where b=1
insert into tablename values(1,2,3,4)哪条产生的undo多?为什么?
delete from tablename where b=1
insert into tablename values(1,2,3,4)哪条产生的undo多?为什么?
解决方案 »
- 我安装asm时出了问题,kernel-smp明明装了,但是说没有
- 怎样使Oracle 表空间的大小只用到80%以下???
- group by的问题
- 求解下面SQL优化
- oracle,mysql迁移问题
- 求一sql语句!
- Oracle9i Application Server Release 2 (9.0.3) for WIN2000的安装问题
- 向大家求教:我在开发一个人才招聘网站,不知下面的库表结构定义是否合理?哪位高手指点一下!谢谢!!!
- oracle查询字段类型
- imp导入提示IMP-00058: 遇到 ORACLE 错误 12154 ORA-12154: TNS: 无法解析指定的连接标识符 IMP-00000: 未成功
- 散分(求PL/SQL下,创建表空间等经典SQL语句)
- 关于创建和执行Function的问题
insert语句产生undo最少
,其次是update ,最后是delete因为undo逻辑上要产生相反的sql的语句:比如你insert ,undo就产生delete
详细的解释
对insert语句,undo只要记录下刚插入的rowid ,对update ,undo要记录被更新的字段的旧值,对delete ,undo刚必须记录下整行数据
对于UPDATE操作,回滚段只需要记录被更新字段的旧值即可(前镜像),回退时通过旧值覆盖新值即可完成回退;
对于DELETE操作,Oracle则必须记录整行的数据,在回退时,Oracle通过一个反向操作恢复删除的数据。