ms-access Расчет производительности поля - PullRequest
0 голосов
/ 24 января 2019

Моя таблица содержит различную информацию о дате, такую ​​как «OrderDate», «ProductionDate», «ControlDate», «SellDate». В запросе я хочу иметь поле «Статус», которое говорит что-то вроде «Orderd», «Produced», «Controlled», «Sold». Я могу получить информацию о состоянии из различных дат (например, если есть ProductionDate, но не установлена ​​ControlDate, Status «Произведено»). Количество полей даты и данных гарантированно никогда не изменится. Изменения даты очень редки, тогда как запросы происходят постоянно. Запрос содержит не одно такое производное поле, а около пяти.

Насколько сильно снижается производительность для вычисления Status с помощью подпрограммы VBA в запросе по сравнению с созданием дополнительного поля Status в таблице, которое устанавливается каждый раз при изменении даты?

Или этот дизайн в основном несовершенен?

1 Ответ

0 голосов
/ 24 января 2019

Что касается снижения производительности, то при обновлении одной записи в таблице вы увидите гораздо меньший показатель, чем при попытке создать это поле «на лету» в запросе.Вопрос в том;о каком количестве данных мы говорим и сколько времени требуется, чтобы выплюнуть отчет?Я бы пошел 50/50 на это;Я не думаю, что какой-либо метод неправильный или хуже, но если вы хотите сэкономить как можно больше времени, я бы добавил поле в таблицу и обновил бы это поле всякий раз, когда вводится / обновляется одна из дат.Больше кода на бэкэнде, но это займет миллисекунды для запуска обновлений по сравнению с децисекундами (или, возможно, секундами) для создания поля в запросе.

...