![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
undo
文章平均质量分 83
Running Sun丶
少说,多做。
展开
-
增删改undo生成量??index是否写undo?Oracle DML语句(insert,update,delete) ‘回滚开销估算‘
假设表有2个索引,新增1000条记录,每个数据块大约可保存600条记录,新增第一个数据块保存了600条记录,同时变更了第1个索引30个索引块,第2个索引40个数据块,新增第2个数据块保存了400条记录,同时变更了第1个索引20个索引块,第2个索引60个数据块。2.从估算公式可以看出,索引对dml操作的影响非常大,当一个表有索引比没索引时做dml操作花费的undo开销非常具大,因为数据库要保证事务回滚的可行性,需要对索引做许多额外的事情,更新索引字段及批量insert操作尤其明显.原创 2024-01-05 09:54:45 · 732 阅读 · 3 评论 -
[应急]Oracle抓undo高的语句
v$undostat //undo虽然自动管理,但是原理还是v$undostat,历史是 dba_hist_undostat。2.@trans 看事务看undo使用块数 USED_UBLK、行数 USED_UREC 和开始时间 START_TIME。3.看 session 状态是否正常,是不是ap长时间没提交。1.@asql 看当时的语句 看是否有时间长的dml。1.@undousage --看undo使用率。0.active的undo看使用率。原创 2024-01-05 09:49:36 · 1220 阅读 · 0 评论 -
[理论]undo有关的4个参数:transactions_per_rollback_segment,undo_retention,_highthreshold_undoretention,_rollb
如果用户执行了commit命令,那么Rollback Segment里面的值就会标识为失效,数据的改变将永久化。2.如果一个select语句在读取一个表的同时另有一个事务也在修改这个表的值,那么select语句select出来的数据是在修改之前的值,因为修改之前的原数据存入到了Rollback Segment中。设置_HIGHTHRESHOLD_UNDORETENTION,虽然允许Oracle自动调整undo retention,但是为它设置一个天花板,不会过份地受MAXQUERYLEN的影响,原创 2024-01-04 17:23:48 · 844 阅读 · 0 评论