一道面试题目8 delete与truncate的区别
来源:互联网 发布:网络绪论 编辑:程序博客网 时间:2024/06/05 20:27
delete:
1.DML语句
2.可以选择性的删除记录,效率相对truncate要低
3.如果没有commit;记录可回滚,删除失效。
truncate:
1.DDL语句
2.一次性删除表中全部记录,效率较高
3.删除后不可回滚(自动commit)
========================================
delete
使用时系统要为你的条件选出的数据分配回滚段,以便在适当的时候不提交事务而回滚.
删除速度较慢,
truncate
使用时系统不分配回滚段,执行后将不能回滚.
删除快.,效率高.
删除表中的部分数据时用delete.如果删除表中的全部的话都可以用,但推荐用后者.
===========================================
truncate可以快速清空表,释放空间,但不能回滚;
delete删除指定条件记录并可回滚
====================================================
详细解说:
TRUNCATE和DELETE有以下几点区别
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能触发任何DELETE触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
7、不能清空父表。
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
TRUNCATE TABLE 则一次性地从表中删除所有的数据页并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
- 一道面试题目8 delete与truncate的区别
- 题目:drop,delete 与 truncate 的区别?
- truncate与delete的区别
- truncate与delete的区别
- truncate与delete的区别
- truncate与delete的区别
- DELETE与TRUNCATE的区别
- truncate与delete的区别
- Delete与truncate的区别
- truncate与delete的区别
- truncate与delete的区别
- Truncate与Delete的区别
- truncate与delete的区别
- truncate与delete的区别
- truncate与delete的区别
- truncate与delete的区别
- truncate与delete的区别
- truncate与delete的区别
- 理想的MDA实现
- 从程序员到测试工程师
- NAT 简介(zz)
- 一个男人日记片断,我笑翻了
- 概要设计的格式
- 一道面试题目8 delete与truncate的区别
- 从上床睡觉前的行为看透男人真性情
- 做个精致的电子工程师[转贴]
- C#构造函数间的调用
- 最后的书信
- HIBERNATE - 符合Java习惯的关系数据库持久化(网址收藏)
- ASP正则表达式详解(一)
- 我为何而生 罗素
- 昨天电话面试,我痛斥自以为是的面试官