У меня есть запрос, который объединяет разные таблицы без какой-либо ссылки, поэтому он создает комбинацию. Число записей достигло 20 миллионов, я отсортировал эти записи по одному полю. MS Access зависает и перестает работать. Пожалуйста, любой, кто может помочь в ускорении запроса или заставить его работать. Спасибо
Объединение таблиц, не сообщая о том, как связать одну таблицу с другой, называется "кросс-объединением", как вы говорите, оно создает комбинацию записей.
Легко получить очень большие результаты с использованием кросс-соединения, всего 5000 строк в каждой из двух таблиц в перекрестном соединении будут генерировать 25 миллионов записей, всего 300 записей в каждой из трех таблиц дадут 27 миллионов. При наличии всего 5000 или 300 записей в таблице MSAccess будет летать, но попросить его запустить запрос для создания записей ~ 20M потребуется время, именно так оно и есть.
Я предлагаю вам рассказать нам, что вы пытаетесь сделать, я ожидаю, что между таблицами должна быть связь или, по крайней мере, что-то в запросе, чтобы сообщить MSAccess, какой из записей 20M вы хотите видеть. Я ожидаю, что вы не захотите прокручивать через 500 000 страниц данных, чтобы найти то, что вы ищете.
top 50
(или 20 ... или 100) в свои записи, чтобы вы не возвращали ВСЕ данные, а только те, которые вас интересуют ... это все еще может быть медленным, хотя.
Один из методов заключается в изменении запроса на запрос create-table без использования фильтров.
Затем создайте индексы в новой таблице в полях, которые вы хотите фильтровать.
Теперь используйте эту таблицу в качестве источника в запросе, где вы применяете фильтры, которые вы хотите.