表SIP1
CKBH
1
2
3
4
6
8
..
..
..
..
有5万条
表SIP2
CKBH
1
2
3
5
..
..
..
也有5万条左右
我现在想晓得 在SIP2.CKBH 但是不在 SIP1.CKBHSELECT B.CKBH FROM SIP1 B WHERE B.CKBH NOT IN(SELECT A.CKBH FROM SIP1 A)
两个表对应的字段我设置了唯一索引
但是查询还是太慢怎么查询快点呢??
解决的在加100分
CKBH
1
2
3
4
6
8
..
..
..
..
有5万条
表SIP2
CKBH
1
2
3
5
..
..
..
也有5万条左右
我现在想晓得 在SIP2.CKBH 但是不在 SIP1.CKBHSELECT B.CKBH FROM SIP1 B WHERE B.CKBH NOT IN(SELECT A.CKBH FROM SIP1 A)
两个表对应的字段我设置了唯一索引
但是查询还是太慢怎么查询快点呢??
解决的在加100分
not in效率不高,试试这个:[在SIP2.CKBH 但是不在 SIP1.CKBH]
SELECT B.CKBH FROM SIP1 A, SIP2 B WHERE B.CKBH = A.CKBH(+) AND A.CKBH IS NULL;
可以试试: SELECT CKBH FROM SIP2 minus SELECT CKBH FROM SIP1
不会吧? minus这东东效率差的说。4楼的应该不错你的这个A.ckbh可以为null吗?SELECT B.CKBH FROM SIP1 B WHERE B.CKBH NOT IN(SELECT A.CKBH FROM SIP1 A WHERE A.ckbh IS NOT NULL)
加了is not null后,执行计划变不?
LZ测试下,我觉得1楼可能要比其它的要快,not exists是能用到索引的.