oracle中truncate和delete命令有何区别,Oracle中truncate和delete的区别「终于解决」

oracle中truncate和delete命令有何区别,Oracle中truncate和delete的区别「终于解决」truncatetable命令将快速删除数据表中的任何记录,但保留数据表结构。这种快速删除和deletefrom数据表的删除全部数据表记录不相同,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据能够回滚恢复,而truncate命令删除的数据是不能够恢复的。truncate操作同没有where条件的delete操作十分相似1、无论truncate大表还是小表速度都非常快。de…

大家好,欢迎来到IT知识分享网。

truncate table命令将快速删除数据表中的任何记录,但保留数据表结构。这种快速删除和delete from 数据表的删除全部数据表记录不相同,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据能够回滚恢复,而truncate命令删除的数据是不能够恢复的。

truncate操作 同没有where条件的delete操作十分相似1、无论truncate大表还是小表速度都非常快。delete要产生回滚信息来满足回滚需求,而truncate是不产生的。2、truncate是DDL语句进行隐式提交,不能进行回滚操作3、truncate重新设定表和索引的HWM(高水标记),由于全表扫描和索引快速扫描都要读取所有的数据块知道HWM为止,所以全表扫描的性能不会因为delete而提高,但是经过truncate操作后速度会很快4、truncate不触发任何delete触发器5、不能赋给某个用户truncate其它用户表的权限。如果需要trucate其它用户表的权限必须对该用户赋DROP ANYTABLE权限6、当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。7、不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25901.html

(0)
上一篇 2023-04-12 20:00
下一篇 2023-04-18 15:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信