truncate与delete的区别
2006-11-06 11:50
330 查看
[align=left]truncate操作 同没有where条件的delete操作十分相似。
1、无论truncate大表还是小表速度都非常快。delete要产生回滚信息来满足回滚需求,而truncate是不产生的。
2、truncate是DDL语句进行隐式提交,不能进行回滚操作。
3、truncate重新设定表和索引的HWM(高水标记),由于全表扫描和索引快速扫描都要读取所有的数据块知道HWM为止。所以全表扫描的性能不会因为delete而提高,但是经过truncate操作后速度会很快。
4、truncate不触发任何delete触发器。
5、不能赋给某个用户truncate其它用户表的权限。如果需要trucate其它用户表的权限必须对该用户赋DROP ANY TABLE权限。
6、当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。
7、不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。[/align]
1、无论truncate大表还是小表速度都非常快。delete要产生回滚信息来满足回滚需求,而truncate是不产生的。
2、truncate是DDL语句进行隐式提交,不能进行回滚操作。
3、truncate重新设定表和索引的HWM(高水标记),由于全表扫描和索引快速扫描都要读取所有的数据块知道HWM为止。所以全表扫描的性能不会因为delete而提高,但是经过truncate操作后速度会很快。
4、truncate不触发任何delete触发器。
5、不能赋给某个用户truncate其它用户表的权限。如果需要trucate其它用户表的权限必须对该用户赋DROP ANY TABLE权限。
6、当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。
7、不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。[/align]
相关文章推荐
- truncate、delete(不带where子句)与drop的区别
- truncate,delete,drop之间的区别
- SQL----- truncate、delete、drop的区别与联系
- 详解Oracle DELETE和TRUNCATE 的区别
- truncate 和 delete 区别总结
- ORACLE DELETE & TRUNCATE 区别
- 深度分析DROP,TRUNCATE与DELETE的区别【我的数据库之路系列】
- SQL SERVER-Delete和Truncate的区别
- truncate与delete的区别
- drop,truncate与delete的区别
- 详解MySQL中DROP,TRUNCATE 和DELETE的区别
- sql中drop、truncate和delete的区别
- oracle中delete、truncate、drop,删除操作的区别
- DELETE与TRUNCATE的区别
- truncate和delete之间的区别
- DROP,TRUNCATE 和DELETE的区别
- SQL关于删除的三个语句,DROP;TRUNCATE;DELETE的区别
- delete table 与delete from table truncate table 的区别
- 详解Oracle DELETE和TRUNCATE 的区别
- 使用DELETE与TRUNCATE删除表所有行的区别