truncate和delete |
先比较一下truncate和delete RrbA6X http://blog.numino.net/ 1、在功能 上,truncate是清空一个表的内容,它相当于delete from table_name。 6gGUJl http://blog.numino.net/ 2、 delete是dml操作,truncate是ddl操作;因此,用delete删除整个表的数据时,会产生大量的roolback, 占用很多的rollback segments(产生用于恢复的日志), 而truncate不会。 ubY0qT http://blog.numino.net/ 3、在内存 中,用delete删除数据,表空间中其被删除数据的表占用的空间还在,便于以后的使用,另外它是 “假相”的删除,相当于windows中用delete删除数据是把数据放到回收站中,还可以恢复,当然如果这个时候重新启动系统(OS或者RDBMS),它也就不能恢复了!(如果立即做尾日志备份并且保证之前的日志链都ok的话,还是有可能恢复的)而用truncate清除数据,内存中表空间中其被删除数据的表占用的空间会被立即释放,相当于windows中用shift+delete删除数据,不能够恢复!(有日志也能恢复^o^ 只是不如回闪那么爽了!) Vl8UXv http://blog.numino.net/ 4、truncate 调整high water mark 而delete不;truncate之 后,TABLE的HWM退回到 INITIAL和NEXT的位置(默认)delete 则不可以。 n9N49B http://blog.numino.net/ 5、truncate 只能对TABLE,delete 可以是table,view,synonym。 XFzU4d http://blog.numino.net/ 6、TRUNCATE TABLE 的对象必须是本模式下的,或者有drop any table的权限 而 DELETE 则是对象必须是本模式下的,或被授 予 DELETE ON SCHEMA.TABLE 或DELETE ANY TABLE的权限。 x4PS9e http://blog.numino.net/ 7、在外层 中,truncate或者delete后, 其占用的空间都将释放。 6o7Ks0 http://blog.numino.net/ 8、truncate和delete只删除数据,而drop则删除整个表(结构和数据)。 nzu0CE http://blog.numino.net/ 删除大数据表的方法参考: wk2R7q http://blog.numino.net/ 1、先将不 需要删除的数据复制到一个临时表中 TP16W6 http://blog.numino.net/ 2、trunc table 表 218Bk2 http://blog.numino.net/ 3、将不需 要删除的数据复制回来。 q9on69 http://blog.numino.net/ 不同:DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据页并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 v2nh9Q http://blog.numino.net/ truncate的功能可以拆分为:dropping + re-creating a table,但truncate的效率要高。因为truncate无 须考虑表索引、约束、触发器等的重建。另外truncate执行后,无法回滚(roll back) Vp2k6j http://blog.numino.net/ HWM(high water mark,最高水位线):The high water mark is divides a segment into used blocks and free blocks。Blocks below the high water mark (used blocks) have at least once contained data. This data might have been deleted. Since Oracle knows that blocks beyond the high water mark don't have data, it only reads blocks up to the high water mark in a full table scan(FTS).在oracle10g中增加了调整HWM的命令:alter table xxx shrink space。
|
|