database - ms-access 计算字段性能
问题描述
我的表格包含各种“日期”信息,如“OrderDate”、“ProductionDate”、“ControlDate”、“SellDate”。在查询中,我想要一个“状态”字段,其中包含“订单”、“生产”、“受控”、“已售”之类的内容。我可以从各种日期中获取状态信息(例如,如果有 ProductionDate 但没有设置 ControlDate,则状态为“已生产”)。日期字段和统计数据的数量保证永远不会改变。日期更改非常少见,而查询一直在发生。该查询不仅包含一个这样的派生字段,而且包含大约五个。
与在表中创建额外的状态字段(每次日期更改时设置)相比,在查询中使用 VBA 例程计算状态的性能损失有多大?
还是这个设计基本上有缺陷?
解决方案
就性能影响而言,如果您更新表中的单个记录,那么您会看到比您尝试在查询中“动态”创建该字段的影响要小得多。问题是; 我们在谈论多少数据,吐出报告需要多长时间?我会为此付出50/50;我认为这两种方法都没有错误或更糟,但是如果您希望尽可能多地节省时间,那么我会在表格中添加一个字段,并在输入/更新其中一个日期时更新该字段。后端有更多的编码,但运行更新需要几毫秒,而在查询中创建字段需要几分之一秒(或可能是几秒)。
推荐阅读
- c# - 隐藏的表单值未绑定到表单 POST
- fullpage.js - Fullpage.js 和移动设备:之前如何触发幻灯片更改?
- nginx - NGINX X-Accel-Redirect 不会自动传递 Content-Type?
- cassandra - Apache Cassandra db 是否有异步驱动程序?
- python - 排序如何比线性(低常数)更快?
- vim - Gcommit 后自动关闭 Gstatus 窗口或在同一窗口中打开 Gcommit
- terraform - 使用 terraform 0.12 中的列表迭代地图
- flutter - 使用从 textField 存储的数据操作字符串 - 颤振/飞镖
- sql - 为什么我在创建表时出错,Oracle 错误代码是:“ORA-00903:无效的表名”
- c# - .NetCore 2.2:web.config -> 第三方工具的 appsettings 转换