1)Truncate 是DDL 语句,DELETE 是DML语句。
2)Truncate 的速度远快于DELETE。当执行DELETE操作时所有表数据先被COPY到回滚表空间,数据量不同花费时间长短不一。而TRUNCATE 是直接删除数据,不进回滚表空间。
3)delete 数据可以运行Rollback 进行数据回滚。而Truncate 则是永久删除,不能回滚。
4) Truncate 操作不会触发表上的delete触发器,而delete 会正常触发。
5) Truncate 语句不能带 where 条件,意味着只能进行全部数据删除,而DELETE可带 where 条件进行局部删除数据。
6)Truncate 操作会重置表的高水位线(High Water Mark),而delete 不会。
7)DELETE可以操作视图,TRUNCATE不能操作视图。