Oracle中的Truncate和Delete语句

摘要:
Oracle First,truncate命令中的truncate和Delete语句:语法:TRUNCATETABLEtable;清除表中的数据并释放存储空间。TRUNCATETABLEEdept30;表格被截断。--------------------------------------------------------------------------------------------------------------让我们来谈谈truncate命令和delete命令之间的区别:1.truncate在所有类型的表上都非常快,无论是大表还是小表。如果有ROLLBACK命令,DELETE将被撤销,TRUNCATE将不会被撤销。DELETE语句一次删除一行,并为删除的每一行在事务日志中记录一项。TRUNCATETABLE删除表中的所有行,但表结构及其列、约束、索引等保持不变。
Oracle中的Truncate和Delete语句
 
首先讲一下,truncate命令:  
语法:TRUNCATE  TABLE  table;
表格里的数据被清空,存储空间被释放。
运行后会自动提交,包括之前其它未提交的会话,因而一旦清空无法回退。
只有表格的创建者或者其他拥有删除任意表格权限的用户(如DBA)才能清空表格。
TRUNCATE  TABLE  dept30;
Table truncated.
------------------------------------------------------------------------------------------------------------
下面讲一下truncate命令和delete的区别:
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) STORAGE 在默认是 DROP STORAGE 当使用DROP STORAGE时将缩短表和表索引,将表收缩到最小范围,并重新设置NEXT参数。REUSE STORAGE不会缩短表或者调整NEXT参数在特殊情况下使用 REUSE ST
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
TRUNCATE TABLE 则一次性地从表中删除所有的数据页并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
===========================================================
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。
如果想保留标识计数值,请改用 DELETE。
如果要删除表定义及其数据,请使用 DROP TABLE 语句。

免责声明:文章转载自《Oracle中的Truncate和Delete语句》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Openssl req命令浅谈程序员的“内卷化”下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# Winform程序调用WebApi接口实现增删改查(CRUD)实例源码教程

下面讲解Winform界面怎样调用WebApi接口实现增、删、改、查(CRUD),下图是CSFramework.WebApi后端开发框架测试程序主界面,以单表数据操作界面演示(Customer:客户管理)为例进行讲解。       CRUD是什么?   CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)、更新(Update)和...

【SQL server初级】数据库性能优化三:程序操作优化

  数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分   数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案     一、操作符优化   1. IN、NOT IN 操作符   IN和EXIS...

MySql分页查询

⒈使用limit进行分页查询   例如:     1.查询前5条记录 1 select * from city LIMIT 5     2.查询第11条-第25条记录       11-1 = 10  (索引从0开始)       25-11+1 = 15  1 select * from city LIMIT 10,15     3.每页8条记录,我要看...

查询设计分析

一、查询设计的建议   在一些情况下,查询结构使优化器不能选择最好的处理策略。知道何时发生这种情况以及如何避免它是很重要的。这里主要介绍如下几点: 在小的结果集上操作; 有效使用索引; 避免优化器提示; 使用域和参照完整性; 避免资源密集型的查询; 减少网络传输数量; 减少事务开销; 二、在小结果集上操作   为了改进查询性能,应限制操作的数据量,包括...

Vue 简单实例 地址选配8

我们可以看到所有的地址都是点亮的状态,就是外面都有个橙色的框。我们需要把默认地址,才设置为点亮的状态。 1、新建变量checkedIndex,默认为 0,然后把遍历地址列表,把字段isDefault为true的地址索引赋值给checkedIndex data() { return{ checkedIndex: 0, //默认选中的索引...

看懂SqlServer查询计划

对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划。毕竟我对SQL Server的认识有限,如有错误,也恳请您在发现后及时批评指正。 首先,打开【SQL Server Management Studio】,输入一个查询语句看看SQL...