我有以下查询DISTINCT查询解决方案
SELECT DISTINCT T_Med.Comp, T_Med.ItemID, T_Med.WP, T_Med.DocName, T_Med.TrfCode,
T_Med.CatDescr, T_Med.SubCatDescr, T_LKPWP.RuleCode, T_MedWP.RuleCode,
T_Med.Group
FROM (T_Med INNER JOIN T_LKPWP ON (T_Med.DocName=T_LKPWP.SDocName)
AND (T_Med.[WP]=T_LKPWP.WP))
LEFT JOIN T_MedWP ON T_LKPWP.RuleCode=T_MedWP.RuleCode
WHERE (((T_MedWP.RuleCode) Is Null));
因为DISTINCT的需要很长的时间来处理。正如我发现的那样,即使我为这些相关领域创建了索引,它也无助于DISTINCT。如果没有DISTINCT相同的查询得出的结果小于1秒
这里T_Med有1070065条记录,T_MedWP有366315条记录和T_LKPWP有55条记录
反正实现不同方式的预期结果。我试图在没有DISTINCT的情况下创建一个单独的表格,即使花了很长时间。
感谢您的意见
您是否检查过查询的执行计划?如果是这样,新的索引是否被实际使用? – 2013-02-14 19:22:29
Hi Fred,如何获取ms访问执行计划 – shabar 2013-02-14 19:31:00
如果您使用的是Jet,那么有一个JETSHOWPLAN注册表设置,启用时会生成一个showplan.out文件。 – 2013-02-14 20:13:17