Я много раз видел этот вопрос, который задавали раньше, но все они включали запросы, созданные с помощью кода.
Я выполняю базовую процедуру создания запроса, в которой я вручную перетаскиваю имена полей из одной таблицы в другую, чтобы присоединиться к ним. Я присоединяю результат запроса к таблице. Первый запрос выводит таблицу примерно с 3 полями и 30 записями (этот первый запрос занимает не более 3 секунд). Вторая таблица - это около 15 полей и 30 000 записей. Я присоединяюсь к запросу с таблицей, используя 3 поля, и отображаю все записи запроса, независимо от того, являются ли они объединенными (таким образом, левое внешнее соединение).
Однако эта процедура занимает не менее 2 минут ...
Я не могу добавить первичный ключ ни к одному из них, так как один является запросом, а другой - связанной таблицей данных, которую я не могу изменить.
Любые предложения относительно того, как я могу сделать это быстрее, или есть еще одна идея, как это сделать ????
Заранее спасибо!
Вы ничего не сказали об индексах, поэтому в этом ответе предполагается, что вы их не использовали. Вы можете значительно ускорить запросы, создав вторичные индексы для объединенных полей («первичный индекс» находится в поле первичного ключа).
Дополнительные сведения о том, как это сделать, см. В разделе эта почта службы поддержки Microsoft Office. Он должен предоставить вам всю необходимую информацию.
Спасибо за ответ, к сожалению, мне не удалось добавить индексы в связанную таблицу, так как дизайн нельзя изменить.
@ExamFML Вы не упомянули, что ваша большая таблица была связанной таблицей из другой БД, которую вы не могли изменить. Но взгляните на это, прежде чем отказываться от этой идеи. Посмотрите на параметр "псевдоиндекс", который он объясняет. Я никогда не делал этого раньше, но похоже, что это позволяет вам создать индекс на своей стороне, когда вы создаете ссылку на таблицу.
Спасибо @BobRodes, попробую :)
Для тех, у кого в будущем возникнет такая же проблема, я в конечном итоге изменил свои запросы, чтобы делать запросы к таблицам, и это было намного быстрее. Я также заметил, что сквозные запросы стали еще быстрее, но я не хотел выбирать свою таблицу odbc каждый раз, когда запускаю ее, поэтому я застрял с запросами к таблицам.
Укажите типы данных полей и отображаемый оператор SQL (который можно получить в представлении SQL, а не в представлении «Дизайн»). Отредактируйте свой пост, указав эту информацию, а не в комментариях.