Recent posts

Fast refresh of aggregate-only materialized views with MAX – algorithm

In this post I will illustrate the algorithm used by Oracle (in 11.2.0.3) to fast refresh a materialized view (MV) containing only the MAX aggregate function: create materialized view test_mv build immediate refresh fast on demand with rowid as select gby as mv_gby, count(*) as...
Read more

Fast refresh of aggregate-only materialized views with SUM – algorithm

In this post I will illustrate the algorithm used by Oracle (in 11.2.0.3) to fast refresh a materialized view (MV) containing only the SUM aggregate function: create materialized view test_mv build immediate refresh fast on demand with rowid as select gby as mv_gby, count(*) as...
Read more

Fast refresh of aggregate-only materialized views – introduction

This post introduces a series about the algorithm used by Oracle (in 11.2.0.3) to fast refresh a materialized view (MV) containing only an aggregate: create materialized view test_mv build immediate refresh fast on demand with rowid as select gby as mv_gby, count(*) as...
Read more

“alter session force parallel query”, and indexes

This post is a brief discussion about the advantages of activating parallelism by altering the session environment instead of using the alternative ways (hints, DDL). The latter ways are the most popular in my experience, but I have noticed that their popularity is actually due, quite frequently,...
Read more

fast refresh of outer-join-only materialized views – algorithm, part 2

In this post, we are going to complete part 1 illustrating the (considerably more complex) general case of a fast refresh from a master inner table without a unique constraint on the joined column(s). To recap, now the outer slice can be composed of more than one row, for example: ooo inn1 ooo...
Read more