Hi All,
I have come up with a very frustrating issue.
I am trying to explain the situation below:
I have got this fact table joined to three main dimensions (Organisation, Product and Month).
The fact table is monthly partitioned. Our fact data is also identified by YEAR_MONTH (i.e. 201601) not by any specific date. The YEAR_MONTH is our partition key for the fact table.
Similar to the fact table the Organisation and Product dimensions are also monthly partitioned. We have monthly snapshot data in each partition.
The Month table is one record per month for 20 years. This is a non partitioned table
In the physical layer we have joined the fact table to the Organisation and Product dimension using the business key and the YEAR_MONTH column. (i.e. org_dim.business_key = fact.business_key and org_dim.year_month = fact.year_month) and only joined the MONTH dim with the fact table (i.e. month_dim.year_month = fact.year_month).
But when OBIEE is generating the query it is doing like below:
org_dim.business_key = fact.business_key
org_dim.year_month = month_dim.year_month
month_dim.year_month = fact.year_month
This returns the correct results, but very very bad for performance.
Ideally I was expecting it to create the following join:
org_dim.business_key = fact.business_key
org_dim.year_month = fact.year_month
month_dim.year_month = fact.year_month
Any idea why my OBIEE is changing my physical join, and how I can force it to not to change the physical join?
Thanks in advance.
Regards,
Samujjwal Basu