Какой подход Union ALL следует использовать? - PullRequest
0 голосов
/ 11 февраля 2010

У нас есть 15 таблиц контрольного журнала, которые необходимо объединить для поиска корректировок запасов только по определенным критериям.

Лучше ли сделать UNION ALL со всеми таблицами, а затем отфильтровать критерии, ИЛИ добавить критерии в комбинацию для каждой таблицы перед выполнением UNION ALL?

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

Приложение foxpro генерирует таблицы, и у нас практически нет контроля над дизайном базы данных.

1 Ответ

2 голосов
/ 11 февраля 2010

Обычно рекомендуется уменьшить количество строк в запросе как можно раньше, что означает фильтрацию каждого запроса, а не фильтра объединенного набора результатов. Есть вероятность, что ваш набор UNION ALL приведет к созданию временной таблицы, если вы фильтруете после объединения, и это не лучший вариант, если ваши таблицы большие (я имею в виду ... big ).

Я думаю, что мы можем принять исключение из "общей хорошей практики", описанной выше ... В тех случаях, когда наличие фильтров в одной точке значительно улучшает удобочитаемость / удобство сопровождения запроса. (И выгоды превышают потенциальные потери).

...