有两个表A、B,表A以表B的主键为外键。批量插入时,速度很快。但删除表中的部分内容时,慢得受不了。删除时我是先删A表,再删B表的。我的问题是:我觉得插入和删除都要维护外键关系,但为什么插入不慢而删除慢呢,有没有什么办法能提高效率呢?

解决方案 »

  1.   

    定义表时加入cascade delete?
    删除可否采用cascade delete?
      

  2.   

    主外键都建立索引了。我没用Hibernate删除,是用jdbc。而且每个表还有70个分区。是不是和分区有关呢?谢谢各位。
      

  3.   

    你可以写个触发器在A表上,写上DELETE B表 WHERE ...
    这样你删时就不会太慢了
      

  4.   

    我现在是删除B表的时候慢,而且我是先删了A表,谁能解释一下删除B表时,数据库都在干什么呢?oracle的cpu利用率达到100%。