0

谁能帮我优化这个查询:

SELECT DISTINCT
A.X1,      
A.X2   
FROM TABLEAA A
JOIN TABLEBB B ON A.Y = B.Y AND B.Z1='SELECTED1' AND B.W NOT LIKE 'SLECTED3'
JOIN TABLECC C ON A.Y = C.Y AND C.Z2='SELECTED2'
AND A.W NOT LIKE 'SLECTED3'

然而

TABLEAA:100 万个条目 TABLEBB:1700 万个条目 TABLECC:120 万个条目

它可以工作,但需要将近 8 到 10 秒。

有没有其他方法可以写这个?

编辑:TableBB 上的主索引是 B.Z1 和 BY 的组合 TableCC 上的主索引是 C.Z2 和 CY 的组合 TableAA 上的主索引是 AY

4

1 回答 1

0

我希望这会更好。

SELECT DISTINCT A.X1, A.X2   
FROM TABLEAA AS A
INNER JOIN(TABLEBB AS B)
   ON(A.Y = B.Y)
INNER JOIN(TABLECC AS C)
   ON(A.Y = C.Y)
WHERE B.Z1 = 'SELECTED1' AND
      B.W NOT LIKE '%SLECTED3%' AND
      C.Z2='SELECTED2' AND
      A.W NOT LIKE '%SLECTED3%'
于 2013-07-16T15:07:29.520 回答