我的表包含各种“日期”信息,例如“ OrderDate”,“ ProductionDate”,“ ControlDate”,“ SellDate”。在查询中,我要有一个“状态”字段,其中显示诸如“已订购”,“已生产”,“受控”,“已售出”之类的内容。我可以从各个日期获取状态信息(例如,如果有ProductionDate但未设置ControlDate,则Status为“已生产”)。保证日期字段和状态的数量永远不会改变。日期更改很少,而查询则始终发生。该查询不仅包含一个这样的派生字段,还包含大约五个字段。
与在表中创建每个日期更改时设置的额外“状态”字段相比,使用查询中的VBA例程计算“状态”对性能的影响有多大?
还是这种设计有缺陷?
答案 0 :(得分:2)
就性能命中而言,如果您更新表中的单个记录,则比尝试在查询中“动态”创建该字段的命中要小得多。问题是;我们正在讨论多少数据,并且要花多长时间才能完成报告?我会为此付出50/50;我认为这两种方法都不是错误的或更糟的方法,但是如果您想节省尽可能多的时间,那么我会在表中添加一个字段,并在输入/更新日期之一时更新该字段。在后端进行更多的编码,但是运行更新需要花费毫秒,而不是在查询中创建字段需要花费数十秒(甚至可能是几秒钟)。