我有以下SQL这需要很长的时间来执行,有没有写这个改善的速度没有更好的办法。提高SQL查询速度
任何帮助是非常可观的。
感谢
SELECT a.KeyField
FROM Details a,
Master b
WHERE a.ForeignKeyField = b.ForeignKeyField
AND a.KeyField IS NOT NULL
AND Date BETWEEN
TO_DATE ('01-01-2011', 'dd-mm-yyyy') AND TO_DATE ('31-12-2011', 'dd-mm-yyyy')
AND a.KeyField IN
(SELECT p.KeyField
FROM Details p,
Master q
WHERE q.ForeignKeyField = p.ForeignKeyField
AND p.KeyField IS NOT NULL
AND p.KeyField = a.KeyField
AND q.FKField2 = b.FKField2
GROUP BY p.KeyField,
q.Date HAVING COUNT (DISTINCT q.ForeignKeyField) > 1)
GROUP BY b.Id,
b.Name,
b.ForeignKeyField,
b.Date,
a.ForeignKeyField,
a.SomeOtherField,
a.KeyField,
b.EtcEtc
喜欢JOIN到的连接表,始终做到'SmallTable INNER JOIN BigTable'。 – MPelletier
@MPelletier很棒的信息!你能解释为什么SmallTable INNER JOIN BigTable –
你的索引是什么? – HLGEM