用于多列比较的SQL查询优化

时间:2012-12-17 04:32:45

标签: sql performance sql-server-2008

我已经通过以下两种方式编写了一个SQL查询,因为底层数据非常庞大,因此两个查询都需要花费大量时间来获取数据。

方法1:

 SELECT A.Col1, B.Col2
  FROM TableA A 
  LEFT JOIN TableB B
  ON ((A.C1= B.C1 AND A.C2= B.C2) OR (A.C1=B.C2 OR  A.C2 = B.C1))
  WHERE B.Col2 IS  NULL

方法2:

  SELECT A.Col1, B.Col2
  FROM TableA A 
  WHERE NOT  EXISTS
  (
  SELECT 1 FROM TableB B
  ((A.C1= B.C1 AND A.C2= B.C2) OR (A.C1=B.C2 OR  A.C2 = B.C1))
  )

你们中的任何人都可以提出更好的方法来实现这一目标。

1 个答案:

答案 0 :(得分:1)

您的查询看起来很好(虽然我不认为它们是等效的)。但是,我认为这里的方法是在A.C1,A.C2和B.C1和B.C2上创建索引。这将大大加快速度。

相关问题