请问如何删除ORACLE 表里大量数据 用DELETE 没有反应 出现ORA-12152: TNS: 无法发送中断消息

解决方案 »

  1.   

    如果確定是要刪除的---如果確定,就用Truncate...
    Truncate更快更直接,但沒有Rollback的功能..
      

  2.   

    Truncate清空整個Table..
    看LZ的錯誤信息,建議重新連接數據庫再執行一遍試試..可能網絡問題
      

  3.   

    因为数据量大的问题,用delete语句如果不及时提交可能给写日志缓冲带来问题,很大程度上影响性能。
    如果你确定要将表的数据全部删掉,可以考虑使用truncate,但不会有日志生成,不能rollback。如果只是删除部分,使用delete时最好分批提交delete操作以释放回滚段,如每删1000条提交一次。
    另外需要注意的是:
    delete操作不会释放表空间,保持所占空间的高水线不动。
    delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. 
    truncate是ddl,操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger. 没有备份的情况下小心使用。
    速度上:truncate>delete
      

  4.   

    如果是删除所有记录的话,建议直接drop该表。再重新建个表,速度超快!^_^
      

  5.   

    skystar99047(天星) 说的不错
      

  6.   

    skystar99047(天星) 说的很详细了。lz自己考虑一下自己的需求是什么
      

  7.   

    如果只是删除部分,使用delete时最好分批提交delete操作以释放回滚段,如每删5000条提交一次。
      

  8.   

    楼主出现的问题可能是因为网络问题造成了连接瞬时中断,所以无法发送消息。truncate与delete的用法楼上的都已作了解释了,使用truncate时千万小心谨慎,
    另外对truncage与delete解释可以再参看一下
    http://community.csdn.net/Expert/topic/5324/5324261.xml?temp=.4794733
    这个贴子
      

  9.   

    drop table 虽然快但并不合适,因为重新建立表的话,和表相关的数据库对象,比如索引都
    需要重新建立,太烦琐
    如果全部删除记录的话还是
    用truncate 比较合适