0
我有一個數據倉庫中的兩個表:balances
和dates
。 Balances
具有以下結構:使用INT與DATE在where子句
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查詢使用,以及日期用於定期報告。
現在,我需要開發集中使用的數據庫(它是一個批處理過程)一個程序,它需要通過日期列重複訪問的平衡表。我應該在這個過程中使用Surrogate Key Date列或Date列嗎?我需要按日期過濾。 Where子句中的INT訪問比DATE訪問更有效嗎?不使用OLAP時,我應該忽略Surrogate Key Date
列嗎?
的'balances'表的關鍵是'代理鍵日期+帳戶number',它不允許重複。我需要'Surrogate Key Date'來運行OLAP,而'Date'列來運行報告(因爲'Surrogate Key Date'對構建報告的最終用戶沒有任何意義) – ps0604
我明白了 - 好吧,在這種情況下,首先使用代理鍵沒有任何好處。根據'DATE'和'Account number'創建一個複合主鍵並使用它。 HANA將在內部爲該連接創建一個隱藏列,並且複合鍵的所有處理都將在該列上完成。顯而易見的主要缺點是額外的空間要求,但您也可以使用代理鍵。 –