我有一张表,基本上每分钟都要插入很多数据,根据这些数据计算完之后,又要删除一部分数据。时间长了,现在性能变得非常差,不论查询还是删除,都需要好长时间,并且,之前建的索引都用不上了。我删除数据时,本来是根据主键来删的,但是从执行计划来看,变成全表扫描了。请问怎么解决?
我建表时,创建了主键和一个非唯一索引。

解决方案 »

  1.   

    删除时,可以用ROWID,非常快。一次处理数据很多的话,可以做PACKAGE之类
      

  2.   

    索引优化查询但是减慢插入
    看你的情况建议去掉索引〉〉我删除数据时,本来是根据主键来删的,但是从执行计划来看,变成全表扫描了。这需要对表重新进行分析
    analyze table tablename compute statistics;
      

  3.   

    计算的时候把数据导出到一个计算用的临时数据库
    要删除的话把需要删除的主键值写到一个表里面去,之后Delete的时候用子查询
      

  4.   

    首先丛述一下你业务:你要插入的标称作目标表T,表中已经有了一些数据组成集合A,一些新来的数据称作集合A,现在把集合A中的数据插入到目标表T,然后在从目标表T中(1,从新加入的集合A中,2 从集合A和B中)删除一些数据。若是1这种情况,用临时表把处理好的了的数据插入到目标表就可以了。若是2那种情况,没办法,请高人指点了
      

  5.   

    不要删除一条commit一条,最好全部做完一次性提交,或者做了多条以后再提交,效率相差很大,不知道对你有没有帮助,另外定期分析一下相关的表