Use of SYS_OP_MAP_NONULL() May Not Be Needed in Fast Refresh When Group By Column Is NOT NULL
Last updated on DECEMBER 17, 2014
Applies to:Oracle Database - Enterprise Edition - Version 184.108.40.206 to 220.127.116.11 [Release 11.2 to 12.1]
Information in this document applies to any platform.
In the refresh (INS) DML statement (used when the refresh contains mixed DML), SYS_OP_MAP_NONNULL("MAS$"."<groupby_column>") is referenced in the WHERE clause. The regular index on this column does not get used.
Under the following conditions, we would expect to see nested loops driven by the mvlog rows use the index on the GROUP BY column to access the master table for the fast refresh. Instead we see a FTS of the master table.
-- The GROUP BY column of a fast-refresh, aggregated mview has as a NOT NULL constraint for that column in the master table.
-- There is a single-column, non-unique index on the GROUP BY column in the master table.
-- There are only a few rows in the mvlog to apply.
-- Stats are current.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms