优化SQL连接语句

时间:2011-04-13 23:07:14

标签: sql inner-join where

我正在加入两张桌子。第一个包含工单及其相关的部件号。第二个包含所有零件编号的BOM。它们都是大桌子。单独地,我可以在几秒钟内查询两个表,如果不是更少。当我执行连接时,需要几分钟。是否可能在加入后执行此语句末尾的位置?如果首先执行连接,我可以看到这需要很长时间。但如果第一个表首先减少到哪里,我认为这应该会很快。有没有办法写一个更优化的查询?

SELECT  Table2.ItemNum As ItemNum  
FROM Table1  
INNER Join Table2  
ON Table1.PartNum = Table2.PartNum
WHERE Table1.WorkOrder = 10100314

1 个答案:

答案 0 :(得分:1)

那会做得更好:

SELECT  Table2.ItemNum As ItemNum  
FROM Table2  
INNER JOIN
(
    SELECT * 
    FROM Table1
    WHERE Table1.WorkOrder = 10100314
)AS Table1
ON Table1.PartNum = Table2.PartNum

PartNum字段的索引也是必需的......