ms access перестает работать, когда я открываю запрос, содержащий 20 миллионов записей с одним типом

100
11

У меня есть запрос, который объединяет разные таблицы без какой-либо ссылки, поэтому он создает комбинацию. Число записей достигло 20 миллионов, я отсортировал эти записи по одному полю. MS Access зависает и перестает работать. Пожалуйста, любой, кто может помочь в ускорении запроса или заставить его работать. Спасибо

спросил(а) 2018-08-13T15:12:00+03:00 2 года, 2 месяца назад
1
Решение
70

Объединение таблиц, не сообщая о том, как связать одну таблицу с другой, называется "кросс-объединением", как вы говорите, оно создает комбинацию записей.

Легко получить очень большие результаты с использованием кросс-соединения, всего 5000 строк в каждой из двух таблиц в перекрестном соединении будут генерировать 25 миллионов записей, всего 300 записей в каждой из трех таблиц дадут 27 миллионов. При наличии всего 5000 или 300 записей в таблице MSAccess будет летать, но попросить его запустить запрос для создания записей ~ 20M потребуется время, именно так оно и есть.

Я предлагаю вам рассказать нам, что вы пытаетесь сделать, я ожидаю, что между таблицами должна быть связь или, по крайней мере, что-то в запросе, чтобы сообщить MSAccess, какой из записей 20M вы хотите видеть. Я ожидаю, что вы не захотите прокручивать через 500 000 страниц данных, чтобы найти то, что вы ищете.

ответил(а) 2018-08-13T15:50:00+03:00 2 года, 2 месяца назад
58

Один из методов заключается в изменении запроса на запрос create-table без использования фильтров.

Затем создайте индексы в новой таблице в полях, которые вы хотите фильтровать.


Теперь используйте эту таблицу в качестве источника в запросе, где вы применяете фильтры, которые вы хотите.

ответил(а) 2018-08-13T16:57:00+03:00 2 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема