用外联接提高表连接的查询速度

发表于:2007-06-22来源:作者:点击数: 标签:

   
  用外联接提高表连接的查询速度
  在作表连接(常用于视图)时,常使用以下方法来查询数据:
  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;

原文转自:http://www.ltesting.net