我使用的是SQL查询类似于以下形式:LEFT OUTER JOIN
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
AND table1.period = table2.period
而且这两种方式太慢或有什么地方锁死,因为它至少需要4分钟返回。如果我要改变它:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
WHERE table1.period = table2.period
然后它工作正常(虽然没有返回正确数量的列)。有什么办法可以加快速度吗?
UPDATE:它做同样的事情,如果我切换后查询的最后两行:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.period = table2.period
WHERE table1.person_uid = table2.person_uid
更新2:这些都是实际观看的是我的加盟。不幸的是,他们在一个我无法控制的数据库上,所以我无法(轻易地)对索引进行任何更改。我倾向于同意这是一个索引问题。在接受答案之前,我会稍等片刻,以便有一些不可思议的方式来调整我不知道的查询。否则,我会接受当前的答案之一,并试图找出另一种方法来做我想做的事情。感谢所有人的帮助。
请为此查询提供执行计划 – squadette 2009-01-14 21:48:51