首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

解决文件删除慢的原因

2011-12-22 
解决资料删除慢的原因现在两表,主表A以及子表B,现在要根据A表里面的ID删除子表B里面资料,子表B里面有639万

解决资料删除慢的原因
现在两表,主表A以及子表B,现在要根据A表里面的ID删除子表B里面资料,子表B里面有639万条数据,删除的资料有1707条数据,子表B中已经建了A表ID的索引,执行语句为
delete   from   B   WHERE   B.A_ID   =ID,现在删除要31s,在网上有查到说要用bulk来做,但这样的改动会比较大,因为以前是用程序来实现删除的,现在要放到数据库端用存储过程来实现,所以看一看各位大侠有没有知道为什么会删除这么慢,有没有地方可以进行设置

[解决办法]
你可以到晚上很少有人用数据库的时候再删除记录!
[解决办法]
如果不考虑恢复数据的话
用truncate 快
[解决办法]
为ID创建的索引中,只包含了一个ID字段吗?
如果是的话,确认没有锁定
[解决办法]
对B表进行一下索引维护后再试试
[解决办法]
delete from B WHERE B.A_ID =ID,这句话一点问题也没有,

不过要31s有点怪,不应该这么慢,看看执行计划,索引是否用上。


[解决办法]
用索引表先存想要删除的ID,然后再用
FORALL I IN 1..index_table_name.count
delete from a where id=index_table_name(i);

热点排行