从A表中删除B表无对应记录的记录,长时间没有反应?
单位一个Oracle库中有两个表,A表结构如下:
XH,JLXH,TP
B表结构为:
XH,SJ
其中,A.jlxh=B.xh
A.tp为Blob字段,存储图片数据。
近期发现A表中的部分记录在B表中没有对应的记录,需要清除。我用下面的语句:
select count(*) from A where jlxh not in (select xh from B)
仅仅统计一下就长时间没有反应,不知道各位有没有好的方法。
A表中的记录大约有100万条,B表中大约30万条。A表中可能有多表记录对应B中的XH。
------解决方案--------------------delete from a where not exists
(select '1 ' from b where a.jlxh=b.xh);
a.jlxh和b.xh要建索引。