날짜가 범위 인 큰 팩트 테이블 (수백만 행)과 분할되지 않은 작은 치수 테이블을 가진 차원 모델이 있습니다. 쿼리 성능을 향상시키기 위해 이러한 시나리오에서 자주 사용되는 구체화 된보기를 발견했습니다.치수 모델에서 Oracle Materialized View를 사용하는 방법
이제, 다음 두 가지 방법으로 누적 된 보고서를 얻기 위해 이러한 구체화 된보기를 활용하는 것이 더 나은지 알고 싶습니다.
A. 팩트 테이블 전체를 필요한 각 차원 테이블과 조인하여 하나를 만듭니다.
create materialized view my_mview execute immediate query rewrite
select
fact.col1, dim1.col2, dim2.col3, sum(fact.col4)
from
my_fact fact
inner join
my_dim1 dim1
on fact.dim1_key = dim1.dim1_key
inner join
my_dim2 dim2
on fact.dim2_key = dim2.dim2_key group by fact.col1, dim1.col2, dim2.col3
이것은 이것을 사용하는 가장 기본적인 방법처럼 보입니다. 하지만 그것은 오히려 제한적으로 보입니다. 그리고 나는 각각의 변형에 대한 새로운 구체화 된보기가 필요합니다.
B. 사실 테이블의 집계를 통해 작성하고 차원 조인을 다시 수행 할 때 u 리 재 작성을 활용하십시오.
create materialized view my_mview execute immediate query rewrite
select
col1, dim1.dim2_key, dim2.dim_key, sum(fact.col4)
from
my_fact fact
그리고 조인이 아니라 전체 팩트 테이블이 집계 materialzed보기를 사용하는 경우 (A)에 위와 같이 참여 않습니다.
각 케이스 또는 다른 케이스를 언제 사용할 수 있습니까?