0

我在数据仓库中有两个表:balancesdates. 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 时是否应该忽略该列?

4

1 回答 1

1

从性能的角度来看,这对 SAP HANA 来说可能根本不重要。一般来说,HANA 在计算联接和结果集时不适用于实际数据类型,而是使用内部引用 ID。

Date实际上,当代理键以 1:1 映射到列时,我根本看不出有任何理由。此外,因为它似乎允许重复,所以它根本不是关键。不确定,您应该如何处理此模型中同一日期的特定记录。

于 2017-05-08T11:23:47.807 回答