I have a question reagrding Oracle materialized views ...
We have two databases:
- Core Database
- Reporting database
The reporting database has:
- a database link to the Core database
- a number of synonyms to the tables in the Core database
- a number of Materialized views defined on top of those synonyms.
The views are set up to refresh hourly.
With increased data volume in the source system, we are seeing increased CPU to materialize the views.
Upon closer inspection, it appears that the view refresh process constructs the result set within the Reporting database - and sends individual, smaller SQL statetements to the Core database.
Some of these materialized views are very complex, and have lots of joins between tables. This is resulting in millions of little SQL statements against the Core database.
My question is: would it be better to create a corresponding "complex" view in the Core database, and have a materialized view in the Reporting database, as a simple "SELECT * FROM CORE.MY_MAT_VIEW"
thanks for any pointers,
cheers, Evan