我删除一千条都花了近一个多小时。有什么好方法没有?请问一下各位高人!
我实在是没辙了。请大家列出自已的语句。谢谢!

解决方案 »

  1.   

    “删除一千条都花了近一个多小时”这也太离谱了吧?写的什么SQL啊?拿出来看看~
      

  2.   

    delete from table_name;
    commit;
      

  3.   

    或分段删:
    delete from table_name where rownum<3000;
    commit;
    delete from table_name where rownum<3000;
    commit;
    delete from table_name;
    commit;
      

  4.   

    如果不需要恢复,干脆用truncate table
      

  5.   

    你的库结构肯定有问题,删除一千条都花了近一个多小时的话oracle就别卖了。
      

  6.   

    你的数据库使用的时间太长了吧?oracle过了一段时间性能会严重下降的.
    1000条数据删除要花一个小时,肯定不是因为sql语句的问题,除非你从一个上1000万条的表里面删除1000条数据.
      

  7.   

    我的数据库有200000多条数据。我用的语句是:delete table where a='123'
    不过满足条件的有1000多条而已,不过有一个触发。是备份数据库的。
      

  8.   

    我刚才到一个update的触发果断的删除了。然后,再运行删除语句,一切OK!
    还真的是快!不过从视图中导出数据。为什么也会这么慢了。各位大侠有没有自己喜欢用的导数据的工具。容易上手的那种。当然不是像dtc这类的自带的导数据的工具!有没有自己写的效率高的程序。借我用一下。我自己搞了一个,用VB做的。效率特低,占用的CPU资源基本上是98%。谢谢了。
      

  9.   

    请问一下。如何在数据库中用sql语句一次性删除表中相同的记录,而只留下一条记录,不知我说清楚了没有?如:
    我有四条相同记录,现在我要删除只留一条记录。OK!
    谁知道???
      

  10.   

    delete from tName
    where condition
    and rownum < ( select count(*) from tName
    where condition);
      

  11.   

    我的机器上用
    delete from table;
    commit;
    删几千条数据只要几秒钟,如果数据量太大,出现了 max#重算段 的错误提示的话,请用
    set autocommit on
    delete from table where rownum<3000
    ....重复delete from .....直到删完为止
    set autocommit off如果觉得麻烦,就用drop table;算了呵呵