Oracle中TRUNCATE和Delete区别及TRUNCATE使用说明
Oracle中TRUNCATE和Delete区别及TRUNCATE使用说明
关键字: database
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比Delete操作后的表要快得多。
4、TRUNCATE不能触发任何Delete触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
7、不能清空父表。
TRUNCATE TABLE (schema)table_name Drop(REUSE)
在默认是 Drop STORAGE 当使用Drop STORAGE时将缩短表和表索引,将表收缩到最小范围,并重新设置NEXT参数。REUSE STORAGE不会缩短表或者调整NEXT参数ITPUB个人空间;
在特殊情况下使用 REUSE STORAGE
truncate读一个实际应用的典型例子:你用sqlldr加载一个1000万记录的数据表,但是加载了多一半的时候你发现有问题,这个时候你想清空表重新加载。那么最好 reuse storage ,这样再次加载就不需要再次寻空闲空间了。
数据库操作的sql语句:
使用方法:
truncate table table_name;
操作特性:
truncate 只删除表中的所有数据,不删除表的结构;
truncate 是ddl操作立即生效,原数据不放到rollback segment中,不能回滚.,操作不触发trigger.;
truncate 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse storage;
truncate 会将高水线复位(回到最开始)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论