`

Oracle truncate 与 delete 区别及DML_ DDL_DCL的简记

    博客分类:
  • DB
阅读更多
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专有的词。
DML----Data Manipulation Language 数据操纵语言
如insert,delete,update,select(插入、删除、修改、检索)

DDL----Data Definition Language 数据库定义语言 
如 create procedure之类

DCL----Data Control Language 数据库控制语言
如grant,deny,revoke等,只有管理员才有这样的权限。
分享到:
评论

相关推荐

    TRUNCATE与 DELETE区别

    在数据库管理中,TRUNCATE 和 DELETE 是两种用于删除数据的方法,它们各有其特定的适用场景和优缺点。本文将详细对比分析这两种操作的区别。 首先,TRUNCATE TABLE 是一种快速删除表中所有数据的方式,它并不记录每...

    Oracle DDL,DML,DCL,TCL 基础概念

    ### Oracle DDL、DML、DCL、TCL 基础概念 #### DDL (Data Definition Language) 数据定义语言 数据定义语言(DDL)主要用于创建、修改或删除数据库对象,如表、索引、视图等。这些操作通常涉及数据库结构的变更。 ...

    DQL,DML, DDL,DCL区别.docx

    在数据库管理中,SQL(Structured Query Language)是用于与关系型数据库进行交互的语言,它包含了四种主要类型的语句:数据查询语言(DQL),数据操纵语言(DML),数据定义语言(DDL)以及数据控制语言(DCL)。...

    DQL,DML, DDL,DCL区别.pdf

    `TRUNCATE TABLE`是DDL的一部分,它可以快速清空表中的所有数据,但与`DELETE`不同的是,`TRUNCATE`不记录回滚信息,且不会触发删除触发器。`TRUNCATE`操作比`DELETE`更快,但不适用于需要保留回滚信息的情况。 4. ...

    sql中 truncate 和 delete 有什么区别

    "SQL中truncate和delete的区别" SQL中truncate和delete是两种不同的数据删除方式,它们之间存在许多关键的区别。本文将详细阐述truncate和delete的不同之处,以便读者更好地理解和选择这两种删除方式。 -delete的...

    ORACLE truncate 数据恢复

    `TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`TRUNCATE`不记录单行删除,所以它在速度上比`DELETE`快很多,且不触发任何与删除相关的触发器或...

    delete,truncate和drop的区别

    尽管`drop`、`truncate`和`delete`都是DDL或DML操作,但在Oracle中,仍有可能恢复已删除的数据或表: - **drop操作**:如果Oracle的回收站功能被启用,则可以通过回收站恢复已删除的表。需要注意的是,这取决于表...

    oracle-DDL-DML-DCL-TCL.rar_The 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、DCL、DDL 是数据库管理系统中三个重要的语言概念,它们分别用于数据操作、权限控制和数据库定义。下面将详细解释这三个概念。 DML(Data Manipulation Language) ---------------------------...

    sql之truncate、delete与drop区别

    在SQL语言中,`TRUNCATE`、`DELETE` 和 `DROP` 是三个非常重要的数据操作语句,它们各自有着不同的用途和特性。理解这些差异对于数据库管理至关重要,特别是对于数据安全性和性能优化方面。 首先,`TRUNCATE` 语句...

    DDL与DML详解

    数据定义语言(DDL)和数据操纵语言(DML)是SQL语言的核心组成部分,它们在数据库管理中扮演着至关重要的角色。本文将详细讲解这两种语言在Oracle数据库中的具体应用。 DDL,全称为Data Definition Language,主要...

    truncate,delete以及drop区别汇总

    ### truncate, delete 以及 drop 区别汇总 #### 一、概述 在数据库管理中,经常需要对数据表进行各种操作,比如删除表中的数据、删除整个表等。`truncate`, `delete` 和 `drop` 是三种常见的 SQL 命令,它们在功能...

    Oracle数据库DBA面试题及答案_经典.docx

    Oracle数据库DBA面试题及答案 以下是根据给定文件信息提炼出的知识点: 1. 冷备份和热备份的不同点: 冷备份是指在数据库关闭后进行备份,适用于所有模式的数据库。热备份是指在数据库仍旧处于工作状态时进行备份...

    Oracle_审计表_sys.aud$_授权给用户Truncate权限.docx

    ### Oracle 审计表 Sys.Aud$ 授权与管理 #### 概述 在Oracle数据库管理系统中,审计功能是一项重要的安全特性,它记录了数据库的所有访问活动,包括但不限于登录、查询、更新等操作。这些审计记录通常存储在系统表...

    oracle DBA_TAB_MODIFICATIONS 刷新

    与 `DELETE` 不同,`TRUNCATE` 不会记录在DML操作中,因为它是一个DDL(数据定义语言)操作。 有一个隐含参数 `_dml_monitoring_enabled`,如果其值为 `FALSE`,则DBA_TAB_MODIFICATIONS将不会记录任何修改。检查这...

    清空ecshop体验数据的简单方法

    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权限.docx

    Oracle 授权审计表 Truncate 权限 Oracle 数据库中的授权审计表是指系统自动生成的审计表,用于记录数据库中各种操作的审计信息。这些审计信息可以用于跟踪数据库中发生的各种操作,提高数据库的安全性。 Truncate...

    DDL、DML和DCL的区别与理解

    数据库管理是IT领域中至关重要的一个部分,其中DDL(Data Definition Language)、DML(Data Manipulation Language)和DCL(Data Control Language)是SQL语言的三大核心组成部分,它们各自负责不同的任务。...

    oracle中truncate table后的数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...

Global site tag (gtag.js) - Google Analytics