用外联接提高表连接的查询速度
在作表连接(常用于视图)时,常使用以下方法来查询数据:
SELECT PAY_NO. PROJECT_NAME
FROM A
WHERE A.PAY_NO NOT IN
(SELECT PAY_NO
FROM B WHERE VALUE = 120000);
但是若表A有10000条记录,表B有10000条记录,则要用掉30分钟才能查完,主要因为NOT IN 要进行一条一条的比较,共需要10000*10000次比较后,才能得到结果。该用外联接后,可以缩短到一分左右的时间:
SELECT PAY_NO,PROJECT_NAME
FROM A,B
WHERE A.PAY_NO=B.PAY_NO(+)
AND B.PAY_NO IS NULL
AND B.VALUE = 12000;