我使用的是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