我有以下查詢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