Oracle truncate table 与 delete tabel的区别
一、
1.delete产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments .truncate 是DDL操作,不产生rollback,速度快一些.
Truncate table does not generate rollback information and redo records so it is much faster than delete.
In default, it deallocates all space except the space allocated by MINEXTENTS unless you specify REUSE STORAGE clause.
2.不从tablespace中腾出空间,需要
ALTER TABLESPACE AAA COALESCE; 才有空间
3.truncate 调整high water mark 而delete不.truncate之后,TABLE的HWM退回到 INITIAL和NEXT的位置(默认)
delete 则不可以。
4.truncate 只能对TABLE
delete 可以是table,view,synonym
5.TRUNCATE TABLE 的对象必须是本模式下的,或者有drop any table的权限 而 DELETE 则是对象必须是本模式下的,或被授予 DELETE ON SCHEMA.TABLE 或DELETE ANY TABLE的权限
二、 truncate是DDL語言.
delete是DML語言
DDL語言是自動提交的.
命令完成就不可回滾.
truncate的速度也比delete要快得多.
三、 truncate 会把 highwatermark 回归至 0 ... 当下一次再插入新资料时就会快一些啦。
所以一般都是在 temp table 上使用的,不过要注意就是 truncate 不能在 pl/sql 上使用,要用 dynamic SQL 才可以。
四、
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERE clause), 用 delete.
------------------------------------------
这几个词不是Oracle专有的词。
一、
1.delete产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments .truncate 是DDL操作,不产生rollback,速度快一些.
Truncate table does not generate rollback information and redo records so it is much faster than delete.
In default, it deallocates all space except the space allocated by MINEXTENTS unless you specify REUSE STORAGE clause.
2.不从tablespace中腾出空间,需要
ALTER TABLESPACE AAA COALESCE; 才有空间
3.truncate 调整high water mark 而delete不.truncate之后,TABLE的HWM退回到 INITIAL和NEXT的位置(默认)
delete 则不可以。
4.truncate 只能对TABLE
delete 可以是table,view,synonym
5.TRUNCATE TABLE 的对象必须是本模式下的,或者有drop any table的权限 而 DELETE 则是对象必须是本模式下的,或被授予 DELETE ON SCHEMA.TABLE 或DELETE ANY TABLE的权限
二、 truncate是DDL語言.
delete是DML語言
DDL語言是自動提交的.
命令完成就不可回滾.
truncate的速度也比delete要快得多.
三、 truncate 会把 highwatermark 回归至 0 ... 当下一次再插入新资料时就会快一些啦。
所以一般都是在 temp table 上使用的,不过要注意就是 truncate 不能在 pl/sql 上使用,要用 dynamic SQL 才可以。
四、
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERE clause), 用 delete.
------------------------------------------
这几个词不是Oracle专有的词。
DML----Data Manipulation Language 数据操纵语言 如insert,delete,update,select(插入、删除、修改、检索) DDL----Data Definition Language 数据库定义语言 如 create procedure之类 DCL----Data Control Language 数据库控制语言 如grant,deny,revoke等,只有管理员才有这样的权限。
发表评论
-
oracle10g完全缷载略记
2016-07-09 15:14 844软件环境: 1、Windows7 + Oracle 10g ... -
MySQL zip版的简单安装方式
2016-06-25 17:56 805Windows下MySQL zip版的简单安装 1、下载My ... -
关系型数据库三范式解释
2016-04-07 11:54 1281数据库 三范式最简单最易记的解释,整理一下方便大家记忆。 书上 ... -
oracle中的视图详解及实例
2015-03-26 16:42 17141.创建用户并授权: cre ... -
plsql快捷键设置
2015-01-19 14:15 24481.使用PL/SQL中经常性需要输入select * fro ... -
database link问题解决
2015-01-15 15:00 6670Oracle数据库中关于databas ... -
Oracle10g创建Database link
2015-01-14 10:53 971Oracle10g创建Database link ... -
union和union all的区别
2014-12-29 16:20 1312Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要 ... -
oracle数据库导入导出
2014-11-04 11:33 827oracle数据库导入导出(导出为dmp格式) 一、数据导出: ... -
Oracle中decode函数用法
2014-10-24 10:40 1227含义解释: decode(条件,值1,返回值1,值2 ... -
db语句优划与用法相关
2014-09-19 17:01 6661. oracle 中的not in() 与not exist ... -
oracle 临时表空间 和数据表空间
2014-08-25 13:28 932Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临 ... -
--Oracle 删除用户和表空间
2014-08-25 11:40 2493--查看oracle所有的表空间 select dbf.tab ... -
Oracle trunc()函数的用法 to_date()
2014-07-01 14:24 1424Oracle trunc()函数的用法 --Oracle ... -
sql执行顺序
2014-06-17 21:06 855在查询中逻辑查询和 ... -
监听listener oracle 错误 1067:进程意外终止
2014-05-15 19:20 1619监听listener oracle 错误 1067:进程意外终 ... -
jdbc properties文件配置
2014-05-05 21:33 1364前言 JDBC(Java Data Base Connecti ... -
PLSQL 创建表空间和用户
2014-03-14 18:09 3543通过pl/sql登录到Oracle数据库上,然后执行菜单:文件 ... -
oracle 中删除表 drop delete truncate 的区别
2014-02-27 17:26 1002相同点,使用drop delete truncate 都会删除 ... -
oracle表创建序列创建触发器创建
2014-02-27 11:33 1231// 创建一个序列 CREATE SEQUENCE Car_G ...
相关推荐
在数据库管理中,TRUNCATE 和 DELETE 是两种用于删除数据的方法,它们各有其特定的适用场景和优缺点。本文将详细对比分析这两种操作的区别。 首先,TRUNCATE TABLE 是一种快速删除表中所有数据的方式,它并不记录每...
### Oracle DDL、DML、DCL、TCL 基础概念 #### DDL (Data Definition Language) 数据定义语言 数据定义语言(DDL)主要用于创建、修改或删除数据库对象,如表、索引、视图等。这些操作通常涉及数据库结构的变更。 ...
在数据库管理中,SQL(Structured Query Language)是用于与关系型数据库进行交互的语言,它包含了四种主要类型的语句:数据查询语言(DQL),数据操纵语言(DML),数据定义语言(DDL)以及数据控制语言(DCL)。...
`TRUNCATE TABLE`是DDL的一部分,它可以快速清空表中的所有数据,但与`DELETE`不同的是,`TRUNCATE`不记录回滚信息,且不会触发删除触发器。`TRUNCATE`操作比`DELETE`更快,但不适用于需要保留回滚信息的情况。 4. ...
"SQL中truncate和delete的区别" SQL中truncate和delete是两种不同的数据删除方式,它们之间存在许多关键的区别。本文将详细阐述truncate和delete的不同之处,以便读者更好地理解和选择这两种删除方式。 -delete的...
`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`TRUNCATE`不记录单行删除,所以它在速度上比`DELETE`快很多,且不触发任何与删除相关的触发器或...
尽管`drop`、`truncate`和`delete`都是DDL或DML操作,但在Oracle中,仍有可能恢复已删除的数据或表: - **drop操作**:如果Oracle的回收站功能被启用,则可以通过回收站恢复已删除的表。需要注意的是,这取决于表...
DDL(Data Definition Language)、DML(Data Manipulation Language)、DCL(Data Control Language)和TCL(Transaction Control Language)是SQL语言的四大核心部分,对于理解和操作Oracle数据库至关重要。...
"DML DCL DDL" DML、DCL、DDL 是数据库管理系统中三个重要的语言概念,它们分别用于数据操作、权限控制和数据库定义。下面将详细解释这三个概念。 DML(Data Manipulation Language) ---------------------------...
在SQL语言中,`TRUNCATE`、`DELETE` 和 `DROP` 是三个非常重要的数据操作语句,它们各自有着不同的用途和特性。理解这些差异对于数据库管理至关重要,特别是对于数据安全性和性能优化方面。 首先,`TRUNCATE` 语句...
数据定义语言(DDL)和数据操纵语言(DML)是SQL语言的核心组成部分,它们在数据库管理中扮演着至关重要的角色。本文将详细讲解这两种语言在Oracle数据库中的具体应用。 DDL,全称为Data Definition Language,主要...
### truncate, delete 以及 drop 区别汇总 #### 一、概述 在数据库管理中,经常需要对数据表进行各种操作,比如删除表中的数据、删除整个表等。`truncate`, `delete` 和 `drop` 是三种常见的 SQL 命令,它们在功能...
Oracle数据库DBA面试题及答案 以下是根据给定文件信息提炼出的知识点: 1. 冷备份和热备份的不同点: 冷备份是指在数据库关闭后进行备份,适用于所有模式的数据库。热备份是指在数据库仍旧处于工作状态时进行备份...
### Oracle 审计表 Sys.Aud$ 授权与管理 #### 概述 在Oracle数据库管理系统中,审计功能是一项重要的安全特性,它记录了数据库的所有访问活动,包括但不限于登录、查询、更新等操作。这些审计记录通常存储在系统表...
与 `DELETE` 不同,`TRUNCATE` 不会记录在DML操作中,因为它是一个DDL(数据定义语言)操作。 有一个隐含参数 `_dml_monitoring_enabled`,如果其值为 `FALSE`,则DBA_TAB_MODIFICATIONS将不会记录任何修改。检查这...
TRUNCATE TABLE `ecs_admin_log`; TRUNCATE TABLE `ecs_article`; TRUNCATE TABLE `ecs_brand`; TRUNCATE TABLE `ecs_comment`; TRUNCATE TABLE `ecs_category`; TRUNCATE TABLE `ecs_goods`; TRUNCATE TABLE `ecs_...
Oracle 授权审计表 Truncate 权限 Oracle 数据库中的授权审计表是指系统自动生成的审计表,用于记录数据库中各种操作的审计信息。这些审计信息可以用于跟踪数据库中发生的各种操作,提高数据库的安全性。 Truncate...
数据库管理是IT领域中至关重要的一个部分,其中DDL(Data Definition Language)、DML(Data Manipulation Language)和DCL(Data Control Language)是SQL语言的三大核心组成部分,它们各自负责不同的任务。...
在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...