现在两表,主表A以及子表B,现在要根据A表里面的ID删除子表B里面资料,子表B里面有639万条数据,删除的资料有1707条数据,子表B中已经建了A表ID的索引,执行语句为
delete from B WHERE B.A_ID =ID,现在删除要31s,在网上有查到说要用bulk来做,但这样的改动会比较大,因为以前是用程序来实现删除的,现在要放到数据库端用存储过程来实现,所以看一看各位大侠有没有知道为什么会删除这么慢,有没有地方可以进行设置
delete from B WHERE B.A_ID =ID,现在删除要31s,在网上有查到说要用bulk来做,但这样的改动会比较大,因为以前是用程序来实现删除的,现在要放到数据库端用存储过程来实现,所以看一看各位大侠有没有知道为什么会删除这么慢,有没有地方可以进行设置
用truncate 快
如果是的话,确认没有锁定
FORALL I IN 1..index_table_name.count
delete from a where id=index_table_name(i);