oracle中undo表空间的理解

微信公众号: 51码农网
专业编程问答社区
www.51manong.com

Oracle中,undo是保存记录的前镜像的。从原理上说。undo有四个作用
1.回顾事物
2.一致性读
3.事物恢复
4.闪回查询
例如你删除一张表的时候,delete from table;就会产生undo。而且产生的undo容量会比你删除表的容量多7倍多。比如你现在表容量150MB。你执行删除全表数据的操作。产生的undo容量大致会达到1128MB。产生的undo容量为啥会比表容量多出了很多?多出的又存储的是什么信息?
undo容量,除了考虑表大小,还有表上索引的总大小,是否存在触发器,物化试图日志,另外还看数据库级的supplemental log是否打开。undo记录还有一些额外成本,比如rowid,scn等信息。

微信公众号:51码农网

你可能感兴趣的:(oracle)