Managing query rewrites

After changes to base tables, the data in a materialized view is stale. You need to know how to prevent the SQL optimizer from rewriting queries in this situation. If you want a query executed without regard to a materialized view, for example to measure the execution time difference, you can disable rewriting and then enable it again.

As administrator, you can globally enable or disable all query rewrites based on materialized views. By default, the optimizer rewrites a query based on a materialized view.

  1. Disable rewriting of a query based on a materialized view named mv1 in the default database.
    ALTER MATERIALIZED VIEW default.mv1 DISABLE REWRITE;
  2. Enable rewriting of a query based on materialized view mv1.
    ALTER MATERIALIZED VIEW default.mv1 ENABLE REWRITE;
  3. Globally enable rewriting of queries based on materialized views by setting a global property.
    SET hive.materializedview.rewriting=true;