У меня есть следующий запросDISTINCT решение Query
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 же запроса дают результаты менее одной секунды
Здесь T_Med имеет 1070065 записей, T_MedWP имеет 366315 записей и T_LKPWP имеет 55 записей
Есть в любом случае достижения ожидаемых результатов в разных пути. Я попытался создать отдельную таблицу без DISTINCT, даже если бы это заняло много времени.
Цените ваши комментарии
Вы изучили план выполнения запроса? Если да, используются ли новые индексы? –
Привет, Фред, Как получить план выполнения в доступе ms. – shabar
Если вы используете Jet, есть параметр реестра JETSHOWPLAN, который создает файл showplan.out при включении. –