我正在为应用程序设计数据库布局,这将大量使用基于时间的查询。我想弄清楚哪个是DB布局的最佳选择。我控制插入/更新过程,但数据将反馈到各种Excel电子表格中,消费者将变得足够多,以至于期望能够在客户端做很多事情并不真实。任何字段都可以用于WHERE或ORDER BY。我的选择是:
计算字段而不是重复数据和风险不一致似乎更合理,这使我决定是分割日期时间,还是连接单独的字段以获得所需的计算字段。
我的直觉告诉我,连接应该比分裂更有效,但它真的有多少吗?
答案 0 :(得分:1)
存储日期时间字段并从中计算日期和时间部分的选项1应该没问题。
我总是希望物理上存储的数据更少。
如果计算过于复杂,无论你的速度减慢,你可能会考虑将其设为PERSISTED COMPUTED COLUMN
,这在选项1和选项3之间是一种妥协。
(除非您不必手动插入)
有关持久计算列的详细信息,请参阅此link中的第3点。