Truncate table 做了什么及写redo 信息

truncate会产生redo , undo , 是修改数据字典产生的,不是删除数据产生的。 

truncate操作会做什么 :   移动HWM,释放extent,重新生成data_object_id。truncate之所以比比delete快,是因为它根本不需要删除数据。但是在实际中我们经常碰到truncate很慢的情况,实际上它比我们想象的要复杂。 在truncate之前,CKPT必须搜索整个buffer cache,把这个object的dirty buffer全部写回磁盘(这个操作在10g有了改进) 。

Truncate操作只是改了一下数据字典上的一部份信息, 另外将重新分配一个Extent, 并获得一个新的Data Object ID, 并修改Segment Header中的信息, 在数据文件中的数据部份没有作什么修改, 象以前的DOS下删除文件一样, 有undel工具可以将文件找回来, 主要是因为磁盘中存放文件的部份没有修改. 因此对于Truncate操作如果我们知道以前的Data Object ID, 然后在数据文件中是可以重新找回数据的.      Truncate和Windows上删除文件类似,更改的只是Segment Header和Inode表、 如果空间没有重用,数据就仍然在那里存在 ;    很多系统在作删除操作的时候都只是做一个标志位,不会去作给磁盘填0那样昂贵的操作 。  

Truncate不删除数据,redo中只会记录这个操作而不会有大量数据的log记录 ,所以redo 会生成很少。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31398691/viewspace-2128885/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31398691/viewspace-2128885/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值