데이터웨어 하우스에 두 개의 테이블, balances
및 dates
이 있습니다.where 절에서 INT vs. DATE 사용
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
다음 구조를 갖는다 : Balances
의 구조는 다음
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
열 두 테이블에 입력 한 날짜이다.
balances
테이블의 서로 게이트 키는 OLAP 쿼리에 사용되며 일반 보고서에는 날짜가 사용됩니다.
이제 데이터베이스를 집중적으로 사용하는 프로그램 (일괄 처리)을 개발해야하며 날짜 열을 통해 잔액 테이블에 반복적으로 액세스해야합니다. 이 프로세스에서 대리 키 날짜 열 또는 날짜 열을 사용해야합니까? 날짜별로 필터링해야합니다. where 절의 INT 액세스가 DATE 액세스보다 더 효율적입니까? OLAP을 사용하지 않을 때 Surrogate Key Date
열을 무시해야합니까?
'balance'테이블의 키는 '대리 키 날짜 + 계좌 번호'이며, 중복을 허용하지 않습니다. 나는 OLAP를 실행하기 위해'Surrogate Key Date'와 보고서를 실행하기 위해'Date' 칼럼을 필요로한다. (Surrogate Key Date는 보고서를 만드는 최종 사용자에게 아무런 의미가 없다.) – ps0604
나는 - 글쎄, 이 경우에도 처음부터 대리 키를 사용하면 아무런 이점이 없습니다. 'DATE'와'Account number'를 기반으로 복합 기본 키를 생성하고이를 사용하십시오. HANA는이 연결에 대해 숨겨진 열을 내부적으로 만들고 복합 키의 모든 처리가 해당 단일 열에서 수행됩니다. 가장 큰 단점은 추가 공간 요구 사항이지만 분명히 대리 키를 사용한다는 것입니다. –