You can create views of tables for a number of reasons:
However, a query against a view might execute more slowly than expected when the complexity of the view definition causes a temporary table to be created to process the query. This temporary table is referred to as a materialized view. For example, you can create a view with a union to combine results from several SELECT statements.
The following sample SQL statement creates a view that includes unions:
CREATE VIEW view1 (col1, col2, col3, col4) AS SELECT a, b, c, d FROM tab1 WHERE UNION SELECT a2, b2, c2, d2 FROM tab2 WHERE o ... UNION SELECT an, bn, cn, dn FROM tabn WHERE o ;
When you create a view that contains complex SELECT statements, the end user does not need to handle the complexity. The end user can just write a simple query, as the following example shows:
SELECT a, b, c, d FROM view1 WHERE a < 10;
However, this query against view1 might execute more slowly than expected because the database server creates a fragmented temporary table for the view before it executes the query.
Another situation when the query might execute more slowly than expected is if you use a view in an ANSI join. The complexity of the view definition might cause a temporary table to be created.
To determine if you have a query that must build a temporary table to process the view, execute the SET EXPLAIN statement. If you see Temp Table For View in the SET EXPLAIN output file, your query requires a temporary table to process the view.
Enterprise Edition Home | Express Edition Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]