我在Microsoft中有一个查询,需要c.a 6秒才能返回1000条记录。
SELECT DISTINCTROW tb_bauteile.*
FROM tb_bauteile
LEFT JOIN FehlerCodes_akt_Liste
ON tb_bauteile.CDT = FehlerCodes_akt_Liste.CDT
WHERE (( ( FehlerCodes_akt_Liste.Steuergerät ) = 'MEDC17' ))
ORDER BY FehlerCodes_akt_Liste.Fehlerpfad;我把索引放在必要的字段上。FehlerCodes_akt_Liste tb_bauteile有c.a 3000记录和c.a 20000记录。如果删除(和order子句),查询返回记录的速度非常快。如何优化查询?
发布于 2012-08-02 07:55:53
你有..。
tb_bauteile LEFT JOIN FehlerCodes_akt_Liste但是这个WHERE条款..。
FehlerCodes_akt_Liste.Steuergerät = 'MEDC17'这个约束使得LEFT JOIN变得毫无意义..。您的结果集将只包括在tb_bauteile.CDT和FehlerCodes_akt_Liste.CDT之间匹配的行。您还可以切换到一个应该更快的INNER JOIN。
这里还有一些其他的问题要研究。
DISTINCTROW,您注意到对性能的影响吗?CDT、Steuergerät和Fehlerpfad的索引。您是否也执行了紧凑操作(更新统计信息)?https://stackoverflow.com/questions/11772813
复制相似问题