Я работаю в MS-Access из Office 365.
t1 - это таблица с около 1000 строк. Я пытаюсь присоединиться к t1 с t2, где t2 чуть меньше 200 тыс. Строк. Я пытаюсь сопоставить строки, используя короткие текстовые строки в нескольких полях, и все соответствующие поля проиндексированы. Строки относительно короткие, с самыми длинными полями (полями улиц) в среднем около 15 символов.
Вот мой запрос:
SELECT one.ID, two.ACCOUNT
FROM split_lct_2 AS one LEFT JOIN split_parcel AS two
ON (
nz(one.mySTREET) = nz(two.pSTREET)
OR nz(one.mySTREET_2) = nz(two.pSTREET)
OR nz(one.mySTREET_3) = nz(two.pSTREET)
)
AND (nz(one.myDIR) = nz(two.pDIR))
AND (nz(one.myHOUSE) = nz(two.pHOUSE));
Запрос работает, однако он ведет себя как 3-летний Таблица запросов появляется через несколько секунд, но остается sluggi sh неопределенно долго. Например, выбор ячейки в наборе занимает 3-7 секунд. Экспорт таблицы запросов в формате .dbf занимает около 8 минут.
Меня беспокоит то, что это просто пример файла для построения запросов, фактический t1 будет иметь более 200 тыс. Строк для обработки.
Есть ли способ структурировать этот запрос, который значительно улучшит производительность?