2014-06-02 Created By BaoXinjian


1. Delete

2. Drop

3. Truncate

4. 例子:一亿条数据中如何删除其中的不符合条件的9999万条,保留剩余部分


1. Delete / Drop / Truncate 删除方式的区别

(1).删除数据及表定义

truncate和 delete只删除数据不删除表的结构(定义) 
        drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 
    (2).DML or DDL

delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. 
        truncate,drop是ddl, 操作立即生效,原数据不放到rollback
segment中,不能回滚. 操作不触发trigger. 
    (3).表空间

delete语句不影响表所占用的extent, 高水线(high
watermark)保持原位置不动 
        drop语句将表所占用的空间全部释放 
        truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始). 
    (4).速度

一般来说: drop> truncate > delete 
    (5).安全性

小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及 
        使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大. 
        想删除表,当然用drop 
        想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.

2. 例子:一亿条数据中如何删除其中的不符合条件的9999万条,保留剩余部分
    (1).临时创建表
        Create table as select from *
Where
    (2).Truncate 原表,再重现创建改表
    (3).将临时表中资料transfer至新创建的原表中
        优点:无需考虑表的索引空间等问题

Thanks and Regards

PLSQL_标准删除的方式Delete/Drop/Truncate区别和比较(概念)的更多相关文章

  1. 【转】PLSQL_标准删除的方式Delete/Drop/Truncate区别和比较

  2. sql 删除表格delete drop truncate 区别(转)

    (1)   DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作.TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把 ...

  3. 详解数据库三种删除方法: delete drop truncate

    Delete Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from 数据表名称 where 列名称=值: 删除所有行:Del ...

  4. delete drop truncate 区别

    truncate 删除内容,并释放空间,并不删除表结构,删除标识列,标识列重新从1开始delete 删除内容,不释放空间,不删除表结构,不删除标识列,标识列继续增加drop 直接删除表

  5. mysql中delete和truncate区别

    delete和truncate区别如下: 一.灵活性:delete可以条件删除数据,而truncate只能删除表的所有数据: delete from table_test where ... trun ...

  6. sql 删除表数据truncate delete drop的区别

    已下内容为转载内容:学习之用 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. ...

  7. delete drop truncate

    一.相同点 1 truncate.不带where子句的delete.drop都会删除表内的数据2 drop.truncate都是DDL语句(数据定义语言),执行后会自动提交 二.不同点 1trunca ...

  8. mysql 删除表记录 delete和truncate table区别

    MySQL中删除表记录delete from和truncate table的用法区别: mysql中有两种删除表中记录的方法: (1)delete from语句, (2)truncate table语 ...

  9. SQL-truncate && delete && drop 的区别

    有些人在删除表的所有记录的时候,喜欢这样来——不给DELETE 语句提供WHERE 子句,表中的所有记录都将被删除.但这种方法是不可取的,正确的应该使用 TRUNCATE TABLE tb_name ...

随机推荐

  1. Unity的延迟管线

    unity buildin deferred pipeline rt0 albedo rt1 spec rt2 normal rt3 emissive rt4 shadowmask rt3的使用方式 ...

  2. SQL Server’s Storage Top 10 Best Practices

    好文章, 简明扼要. Storage Top 10 Best Practices http://technet.microsoft.com/en-us/library/cc966534.aspx

  3. android 时间控件概述

    android的自带时间选择控件,是一个让用户既能输入的又能选择的样子.这本来没有太大的问题了. 但是,坑爹的android是开源的.自带的时间控件在某些机型上,早已经是面目全非了,在用以一个普通用户 ...

  4. Nginx配置文件(nginx.conf)配置具体解释

    欢迎扫码增加Java高知群交流 Nginx的配置文件nginx.conf配置具体解释例如以下:   user nginx nginx ; Nginx用户及组:用户 组. window下不指定   wo ...

  5. MongoDB学习笔记(五)--复制集 && sharding分片

    主从复制                                                                                       主从节点开启 主节 ...

  6. 基于Java spring框架的微信企业号开发中关于js-sdk的配置

    在调用js-sdk的第一步,我们需要引入js-sdk的js链接,然后执行wx.config,官方示例如下所示: wx.config({ debug: true, // 开启调试模式,调用的所有api的 ...

  7. (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航

    (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航 首页支持微信登陆,只有第8套模板支持(endv模板),后 ...

  8. 【Javascript Demo】防止按钮在短时间内被多次点击

    如果一个按钮可以在短时间内多次点击,那么有可能会被用户恶意点击,为防止这种情况,可以设定一定时间内只能点击一次,其他时间禁止点击按钮. 1.效果如下:     2.代码如下:   <div> ...

  9. IOS遇到的问题总结

    1.NSString *path = [[NSBundle mainBundle] pathForResource:@"desc" ofType @"plist" ...

  10. 第十一节,命名空间namespace

    1,命名空间的定义 命名空间可以把不同的方法分散到不同的文件去实现,如果你会objective-C,他的作用和里面的类目有异曲同工之妙.当然了也有很多不同的地方,首先要明白的是,命名空间并不是一个类, ...