I'm currently creating materialized view logs on a whole bunch of tables in order to support materialized views with FAST REFRESH. The materialized views we're creating contain approx 30 columns from various tables. One of our fact tables contains about 15 columns that will be used in a materialized view.
Is it necessary to enumerate all of the columns in the base table that will be required in the MV when creating the MV Log?
CREATE MATERIALIZED VIEW LOG ON SCHEMA.TABLE_A
WITH ROWID, PRIMARY KEY, SEQUENCE (COL1, COL2, COL3, ..., COL48)
INCLUDING NEW VALUES;
The above is an example of how I'm currently creating the MV Log. I'll admit that the above is a result of trial and error, without a thorough understanding of how each component in the statement works (I understand most).
Under what circumstances is it necessary for me to define which columns should be included in the MV log?
Some materialized views will just be a join across multiple tables. Others will include aggregations, groupings, sums, etc.