Теперь давайте посмотрим, с чего начать ваш оператор выбора:
ВЫБРАТЬ dscan.guid, dscan.drive, dscan.folder, dscan.filename, source.guid
ОТ источника
ПРАВИЛЬНОЕ СОЕДИНЕНИЕ dscan ON
и заканчивайте этим:
ГДЕ source.guid имеет значение Null
ЗАКАЗАТЬ по dscan.drive, dscan.guid
Так что, если я правильно прочитал, вы пытаетесь прочитать все из таблицы dscan и муравья, соответствующего исходной таблице.
?? Что именно связывает две таблицы, если вы ищете source.guid null? Потому что, если source.guid имеет значение null, почему вы делаете что-то вроде:
источник
ПРАВИЛЬНОЕ СОЕДИНЕНИЕ
(source.guid & '_dtr' = dscan.guid ИЛИ source.guid & '_dto' = dscan.guid ИЛИ source.guid = dscan.guid)
AND dscan.guid LIKE '% "& Replace (strSearch_guid,"' "," '' ") &"% '
AND dscan.filename NOT LIKE '. [_]%'
AND dscan.drive = 'Z:')
Ваш запрос занимает много времени, потому что он теряется в соединении. Ваши попытки
чтобы заставить его фильтровать слишком много вещей и фильтровать как "% бла бла%" не
помогите со скоростью. Проверьте, есть ли у вас правильные индексы для исходной таблицы и таблицы dscan.
Почему ГДЕ source.guid равен NUll Вам нужно, чтобы source.guid совпадал с dscan.guide в таблице dscan.