根 表的 HWM 有关   delete 后剩余的空间不会被 table 释放出来
truncate 可以释放空间
你建一个大一点的表
用delete 或 truncate 分别试试 用了看 user_segments 中 table 使用了多少block
就可以看出区别的

解决方案 »

  1.   

    一个典型的例子就是一个很大的表当数据全部delete后,select * from tabname,虽然没有一行数据,但是用了很长时间,就是因为HWM没有复位。
      

  2.   

    truncate可以快速清空表,释放空间,但不能回滚;
    delete删除指定条件记录并可回滚
      

  3.   

    delete可以选择性的删除纪录,但是truncate只能清空全部的纪录
      

  4.   

    delete:
    1.DML语句
    2.可以选择性的删除记录,效率相对truncate要低
    3.如果没有commit;记录可回滚,删除失效。
    truncate:
    1.DDL语句
    2.一次性删除表中全部记录,效率较高
    3.删除后不可回滚(自动commit)
      

  5.   

    delete
      使用时系统要为你的条件选出的数据分配回滚段,以便在适当的时候不提交事务而回滚.
      删除速度较慢,
      
    truncate
      使用时系统不分配回滚段,执行后将不能回滚.
      删除快.,效率高.
    删除表中的部分数据时用delete.如果删除表中的全部的话都可以用,但推荐用后者.