Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member207342
Contributor
0 Kudos
Every one knows that we can use aggregate aware feature of Business Objects in universe in order to improve query performance by using summary tables or MV's.

Similar results can be achieved using database also. Means if you are using Oracle database Oracle can dynamically use your summary views, instead of hitting tables.

Lets take a look at it.


Suppose you have summarized materialized view as

CREATE MATERIALIZED VIEW DaySummary_mv
  AS
  SELECT d.day,AVG(s.amount_sold)
   FROM sales s, daytab d
   WHERE s.date = d.date
   GROUP BY d.day



CREATE MATERIALIZED VIEW MonthSummary_mv
  AS
  SELECT d.day,AVG(s.amount_sold)
   FROM sales s, daytab d
   WHERE s.month = d.month
   GROUP BY d.month


Now if you have created a report in web intelligence which generates query as

SELECT d.day,AVG(s.amount_sold)
   FROM sales s, daytab d
   WHERE s.month = d.month
   GROUP BY d.month


Then Oracle Database will automatically change the query to

select * from MonthSummary_mv

in order to use the summary materialized view instead of hitting tables. which would certainly improve your query performace.

To enable this feature, You would need to enable Oracle QUERY REWRITE feature.

To achive this either you would need to modify view definition as

CREATE MATERIALIZED VIEW MonthSummary_mv
ENABLE QUERY REWRITE
  AS
  SELECT d.day,AVG(s.amount_sold)
   FROM sales s, daytab d
   WHERE s.month = d.month
   GROUP BY d.month

or if view is already created use alter:

alter materialized view mv_name ENABLE QUERY REWRITE ;


Please read more about this feature in Oracle documentation in order to use this feature. It might be helpful in some situation to improve the report performance.