我在数据仓库中有两个表:balances
和dates
. Balances
具有以下结构:
Surrogate Key Date | Date | Account | Balance
1 | 2017-02-01 | 100 | 1234
1 | 2017-02-01 | 200 | 5151
2 | 2017-02-02 | 100 | 5123
2 | 2017-02-02 | 200 | 8234
并dates
具有以下结构:
Surrogate Key Date | Date | Weekday | Week in Year | ... other columns
1 | 2017-02-01 | Wed | 5 |
2 | 2017-02-02 | Thu | 5 |
该Surrogate Key Date
列是 INT 类型,并且Date
在两个表中该列都是 DATE 类型。
表中的代理键balances
用于 OLAP 查询,日期用于定期报告。
现在,我需要开发一个密集使用数据库的程序(它是一个批处理),它需要通过日期列重复访问余额表。我应该在这个过程中使用代理键日期列还是日期列?我需要按日期过滤。where 子句中的 INT 访问是否比 DATE 访问更有效?Surrogate Key Date
不使用 OLAP 时是否应该忽略该列?