Oracle 12c 新特性之 temp undo

从Oracle12cR1开始,引入了临时undo功能,临时undo记录不再存储在undo表空间内,而是存储在临时表中。这有助于减少undo表空间的大小和redo数据的生成,并允许在ADG中对临时表进行DML操作。要启用此功能,需设置兼容性参数为12.0.0或更高,并启用temp_undo_enabled初始化参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle 12c R1 之前,临时表生成的undo记录是存储在undo表空间里的,通用表和持久表的undo记录也是类似的。而在 12c R12 的临时 undo 功能中,临时 undo 记录可以存储在一个临时表中,而无需再存储在 undo 表空间内。临时表的UNDO信息通常用于读一致性和事务回滚,在事务完成之后,无需进行恢复,所以也就不必永久保存。这个特性完全无损Oracle的事务一致性。这样做的主要好处在于:减少 undo 表空间,由于信息不会被记录在 redo 日志中,所以减少了 redo 数据的生成。你可以在会话级别或者数据库级别来启用临时 undo 选项。

启用 temp undo 好处:
1.减少 undo 表空间
2.减少 redo 数据
3.允许在ADG中对临时表进行DML操作

启用 temp undo 要求:
1.兼容性参数必须设置为 12.0.0 或更高
2.启用 c##andy.temp_undo_ENABLED 初始化参数
3.足够的空间来创建临时表空间

开启或者禁用 temp undo:
SQL> ALTER SYSTEM|SESSION SET TEMP_UNDO_ENABLED=TRUE;
SQL> ALTER SYSTEM|SESSION SET TEMP_UNDO_ENABLED=FALSE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值