Oracle9i SQL Reference
Release 1 (9.0.1)

Part Number A90125-01
Go To Documentation Library
Home
Go To Product List
Book List
Go To Table Of Contents
Contents
Go To Index
Index

Master Index

Feedback

Go to previous page Go to beginning of chapter Go to next page

SQL Statements:
ALTER CLUSTER to ALTER SEQUENCE, 9 of 18


ALTER MATERIALIZED VIEW

Purpose

A materialized view is a database object that contains the results of a query. The FROM clause of the query can name tables, views, and other materialized views. Collectively these are called master tables (a replication term) or detail tables (a data warehouse term). This reference uses "master tables" for consistency. The databases containing the master tables are called the master databases.

Use the ALTER MATERIALIZED VIEW statement to modify an existing materialized view in one or more of the following ways:

Prerequisites

The privileges required to alter a materialized view should be granted directly, as follows:

The materialized view must be in your own schema, or you must have the ALTER ANY MATERIALIZED VIEW system privilege.

To enable a materialized view for query rewrite:

Syntax

alter_materialized_view::=


Text description of statements_165.gif follows
Text description of alter_materialized_view

LOB_storage_clause: See ALTER TABLE.

modify_LOB_storage_clause: See ALTER TABLE.

partitioning_clauses: See table_partitioning_clauses.

parallel_clause::=


Text description of statements_166.gif follows
Text description of parallel_clause

allocate_extent_clause::=


Text description of statements_167.gif follows
Text description of allocate_extent_clause

alter_iot_clauses::=


Text description of alter_iot_clauses.gif follows
Text description of alter_iot_clauses

index_org_table_clause::=


Text description of index_org_table_clause.gif follows
Text description of index_org_table_clause

mapping_table_clauses: not supported with materialized views

compression_clauses: not supported with materialized views

alter_mapping_clauses: not supported with materialized views

index_org_overflow_clause::=


Text description of index_org_overflow_clause.gif follows
Text description of index_org_overflow_clause

alter_overflow_clause::=


Text description of alter_overflow_clause.gif follows
Text description of alter_overflow_clause

add_overflow_clause::=


Text description of statements_137a.gif follows
Text description of add_overflow_clause

scoped_table_ref_constraint::=


Text description of statements_146.gif follows
Text description of scoped_table_ref_constraint

alter_mv_refresh_clause::=


Text description of statements_168.gif follows
Text description of alter_mv_refresh_clause

physical_attributes_clause::=


Text description of statements_1a.gif follows
Text description of physical_attributes_clause

storage_clause: See the storage_clause.

Keywords and Parameters

schema

Specify the schema containing the materialized view. If you omit schema, Oracle assumes the materialized view is in your own schema.

materialized_view

Specify the name of the materialized view to be altered.

physical_attributes_clause

Specify new values for the PCTFREE, PCTUSED, INITRANS, and MAXTRANS parameters (or, when used in the USING INDEX clause, for the INITRANS and MAXTRANS parameters only) and the storage characteristics for the materialized view.

See Also:

  • ALTER TABLE for information on the PCTFREE, PCTUSED, INITRANS, and MAXTRANS parameters

  • for information about storage characteristics

 

LOB_storage_clause

The LOB_storage_clause lets you specify the LOB storage characteristics.

See Also:

ALTER TABLE for information about specifying the parameters of this clause 

modify_LOB_storage_clause

The modify_LOB_storage_clause lets you modify the physical attributes of the LOB attribute lob_item or LOB object attribute.

See Also:

ALTER TABLE for information about specifying the parameters of this clause 

partitioning_clauses

The syntax and general functioning of the partitioning clauses for materialized views is the same as for partitioned tables.

See Also:

ALTER TABLE 

Restrictions on partitioning_clauses:

MODIFY PARTITION UNUSABLE LOCAL INDEXES

Use this clause to mark UNUSABLE all the local index partitions associated with partition.

MODIFY PARTITION REBUILD UNUSABLE LOCAL INDEXES

Use this clause to rebuild the unusable local index partitions associated with partition.

parallel_clause

The parallel_clause lets you change the default degree of parallelism for the materialized view.


Note:

The syntax of the parallel_clause supersedes syntax appearing in earlier releases of Oracle. Superseded syntax is still supported for backward compatibility, but may result in slightly different behavior than that documented. 


NOPARALLEL

Specify NOPARALLEL for serial execution. This is the default.

PARALLEL

Specify PARALLEL if you want Oracle to select a degree of parallelism equal to the number of CPUs available on all participating instances times the value of the PARALLEL_THREADS_PER_CPU initialization parameter.

PARALLEL integer

Specification of integer indicates the degree of parallelism, which is the number of parallel threads used in the parallel operation. Each parallel thread may use one or two parallel execution servers. Normally Oracle calculates the optimum degree of parallelism, so it is not necessary for you to specify integer.

See Also:

"Notes on the parallel_clause" for CREATE TABLE  

LOGGING | NOLOGGING

Specify or change the logging characteristics of the materialized view.

See Also:

ALTER TABLE for information about logging characteristics 

allocate_extent_clause

The allocate_extent_clause lets you explicitly allocate a new extent for the materialized view.

See Also:

ALTER TABLE 

CACHE | NOCACHE

For data that will be accessed frequently, CACHE specifies that the blocks retrieved for this table are placed at the most recently used end of the LRU list in the buffer cache when a full table scan is performed. This attribute is useful for small lookup tables. NOCACHE specifies that the blocks are placed at the least recently used end of the LRU list.

See Also:

ALTER TABLE for information about specifying CACHE or NOCACHE 

alter_iot_clauses

Use the alter_iot_clauses to change the characteristics of an index-organized materialized view. The keywords and parameters of the components of the alter_iot_clauses have the same semantics as in ALTER TABLE, with the restrictions that follow.

Restrictions: You cannot specify the mapping_table_clauses or the compression_clauses of the index_org_table_clause.

See Also:

"ORGANIZATION INDEX Clause" of CREATE MATERIALIZED VIEW for information on creating an index-organized materialized view 

USING INDEX Clause

Use this clause to change the value of INITRANS, MAXTRANS, and STORAGE parameters for the index Oracle uses to maintain the materialized view's data.

Restriction: You cannot specify the PCTUSED or PCTFREE parameters in this clause.

MODIFY scoped_table_ref_constraint

Use the MODIFY scoped_table_ref_constraint clause to rescope a REF column or attribute to a new table.

Restrictions: You can rescope only one REF column or attribute in each ALTER MATERIALIZED VIEW statement, and this must be the only clause in this statement.

REBUILD Clause

Specify REBUILD to regenerate refresh operations if a type that is referenced in materialized_view has evolved.

Restriction: You cannot specify any other clause in the same ALTER MATERIALIZED VIEW statement.

alter_mv_refresh_clause

Use the alter_mv_refresh_clause to change the default method and mode and the default times for automatic refreshes. If the contents of a materialized view's master tables are modified, the data in the materialized view must be updated to make the materialized view accurately reflect the data currently in its master table(s). This clause lets you schedule the times and specify the method and mode for Oracle to refresh the materialized view.


Note:

This clause only sets the default refresh options. For instructions on actually implementing the refresh, refer to Oracle9i Replication and Oracle9i Data Warehousing Guide


FAST Clause

Specify FAST for incremental refresh method, which performs the refresh according to the changes that have occurred to the master tables. The changes are stored either in the materialized view log associated with the master table (for conventional DML changes) or in the direct loader log (for direct-path INSERT operations).

For both conventional DML changes and for direct-path INSERTs, other conditions may restrict the eligibility of a materialized view for fast refresh.

See Also:

 

Restrictions:

COMPLETE Clause

Specify COMPLETE for the complete refresh method, which is implemented by executing the materialized view's defining query. If you request a complete refresh, Oracle performs a complete refresh even if a fast refresh is possible.

FORCE Clause

Specify FORCE if, when a refresh occurs, you want Oracle to perform a fast refresh if one is possible or a complete refresh otherwise.

ON COMMIT Clause

Specify ON COMMIT if you want a fast refresh to occur whenever Oracle commits a transaction that operates on a master table of the materialized view.

Restriction: This clause is supported only for materialized join views and single-table materialized aggregate views.

See Also:

Oracle9i Replication and Oracle9i Data Warehousing Guide 

ON DEMAND Clause

Specify ON DEMAND if you want the materialized view to be refreshed on demand by calling one of the three DBMS_MVIEW refresh procedures. If you omit both ON COMMIT and ON DEMAND, ON DEMAND is the default.

See Also:

 


Note:

If you specify ON COMMIT or ON DEMAND, you cannot also specify START WITH or NEXT


START WITH Clause

Specify START WITH date to indicate a date for the first automatic refresh time.

NEXT Clause

Specify NEXT to indicate a date expression for calculating the interval between automatic refreshes.

Both the START WITH and NEXT values must evaluate to a time in the future. If you omit the START WITH value, Oracle determines the first automatic refresh time by evaluating the NEXT expression with respect to the creation time of the materialized view. If you specify a START WITH value but omit the NEXT value, Oracle refreshes the materialized view only once. If you omit both the START WITH and NEXT values, or if you omit the alter_mv_refresh_clause entirely, Oracle does not automatically refresh the materialized view.

WITH PRIMARY KEY Clause

Specify WITH PRIMARY KEY to change a rowid materialized view to a primary key materialized view. Primary key materialized views allow materialized view master tables to be reorganized without affecting the materialized view's ability to continue to fast refresh. The master table must contain an enabled primary key constraint.

See Also:

Oracle9i Replication for detailed information about primary key materialized views 

USING ROLLBACK SEGMENT Clause

Specify USING ROLLBACK SEGMENT to change the remote rollback segment to be used during materialized view refresh, where rollback_segment is the name of the rollback segment to be used.

See Also:

Oracle9i Replication for information on changing the local materialized view rollback segment using the DBMS_REFRESH package 

DEFAULT

Specify DEFAULT if you want Oracle to choose the rollback segment to use. If you specify DEFAULT, you cannot specify rollback_segment.

MASTER ... rollback_segment

Specify the remote rollback segment to be used at the remote master for the individual materialized view. (To change the local materialized view rollback segment, use the DBMS_REFRESH package, described in Oracle9i Replication.)

One master rollback segment is stored for each materialized view and is validated during materialized view creation and refresh. If the materialized view is complex, the master rollback segment, if specified, is ignored.

QUERY REWRITE Clause

Use this clause to determine whether the materialized view is eligible to be used for query rewrite.

ENABLE Clause

Specify ENABLE to enable the materialized view for query rewrite.

Restrictions:

DISABLE Clause

Specify DISABLE if you do not want the materialized view to be eligible for use by query rewrite. (If a materialized view is in the invalid state, it is not eligible for use by query rewrite, whether or not it is disabled.) However, a disabled materialized view can be refreshed.

COMPILE

Specify COMPILE to explicitly revalidate a materialized view. If an object upon which the materialized view depends is dropped or altered, the materialized view remains accessible, but it is invalid for query rewrite. You can use this clause to explicitly revalidate the materialized view to make it eligible for query rewrite.

If the materialized view fails to revalidate, it cannot be refreshed or used for query rewrite.

CONSIDER FRESH

This clause lets you manage the staleness state of a materialized after changes have been made to its master tables. CONSIDER FRESH directs Oracle to consider the materialized view fresh and therefore eligible for query rewrite in the TRUSTED or STALE_TOLERATED modes. Because Oracle cannot guarantee the freshness of the materialized view, query rewrite in ENFORCED mode is not supported. This clause also sets the staleness state of the materialized view to UNKNOWN. The staleness state is displayed in the STALENESS column of the ALL_MVIEWS, DBA_MVIEWS, and USER_MVIEWS data dictionary views.


Note:

A materialized view is stale if changes have been made to the contents of any of its master tables. This clause directs Oracle to assume that the materialized view is fresh and that no such changes have been made. Therefore, actual updates to those tables pending refresh are purged with respect to the materialized view. 


See Also:

Oracle9i Data Warehousing Guide for more information on query rewrite and the implications of performing partition maintenance operations on master tables 

Examples

Automatic Refresh Example

The following statement changes the default refresh method for the sales_by_month_by_state materialized view (created in "Materialized Aggregate View Examples") to FAST:

ALTER MATERIALIZED VIEW sales_by_month_by_state
   REFRESH FAST; 

The next automatic refresh of the materialized view will be a fast refresh provided it is a simple materialized view and its master table has a materialized view log that was created before the materialized view was created or last refreshed.

Because the REFRESH clause does not specify START WITH or NEXT values, Oracle will use the refresh intervals established by the REFRESH clause when the sales_by_month_by_state materialized view was created or last altered.

NEXT Example

The following statement stores a new interval between automatic refreshes for the branch_emp materialized view:

ALTER MATERIALIZED VIEW branch_emps
   REFRESH NEXT SYSDATE+7;

Because the REFRESH clause does not specify a START WITH value, the next automatic refresh occurs at the time established by the START WITH and NEXT values specified when the branch_emp materialized view was created or last altered.

At the time of the next automatic refresh, Oracle refreshes the materialized view, evaluates the NEXT expression SYSDATE+7 to determine the next automatic refresh time, and continues to refresh the materialized view automatically once a week.

Because the REFRESH clause does not explicitly specify a refresh method, Oracle continues to use the refresh method specified by the REFRESH clause of the CREATE MATERIALIZED VIEW or most recent ALTER MATERIALIZED VIEW statement.

Complete Refresh Example

The following statement specifies a new refresh method, a new NEXT refresh time, and a new interval between automatic refreshes of the sf_emp materialized view:

ALTER MATERIALIZED VIEW sf_emp
   REFRESH COMPLETE   
   START WITH TRUNC(SYSDATE+1) + 9/24  
   NEXT SYSDATE+7;

The START WITH value establishes the next automatic refresh for the materialized view to be 9:00 a.m. tomorrow. At that point, Oracle performs a complete refresh of the materialized view, evaluates the NEXT expression, and subsequently refreshes the materialized view every week.

Enabling Query Rewrite Example

The following statement enables query rewrite on the materialized view mv1 and implicitly revalidates it.

ALTER MATERIALIZED VIEW mv1
   ENABLE QUERY REWRITE;
Rollback Segment Examples

The following statement changes the remote master rollback segment used during materialized view refresh to master_seg:

ALTER MATERIALIZED VIEW inventory 
   REFRESH USING MASTER ROLLBACK SEGMENT master_seg;  

The following statement changes the remote master rollback segment used during materialized view refresh to one chosen by Oracle:

ALTER MATERIALIZED VIEW sales_mv 
   REFRESH USING DEFAULT MASTER ROLLBACK SEGMENT; 
Primary Key Example

The following statement changes a rowid materialized view to a primary key materialized view:

ALTER MATERIALIZED VIEW emp_rs 
   REFRESH WITH PRIMARY KEY; 
COMPILE Example

The following statement revalidates the materialized view store_mv:

ALTER MATERIALIZED VIEW store_mv COMPILE;
Modifying Refresh Method Example

The following statement changes the refresh method of materialized view store_mv to FAST:

ALTER MATERIALIZED VIEW store_mv REFRESH FAST;
CONSIDER FRESH Example

The following statement instructs Oracle that materialized view mv1 should be considered fresh. This statement allows mv1 to be eligible for query rewrite in TRUSTED mode even after you have performed partition maintenance operations on the master tables of mv1:

ALTER MATERIALIZED VIEW mv1 CONSIDER FRESH;

Go to previous page Go to beginning of chapter Go to next page
Oracle
Copyright © 1996-2001, Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Book List
Go To Table Of Contents
Contents
Go To Index
Index

Master Index

Feedback