Enterprise Edition Home | Express Edition Home | Previous Page | Next Page   Queries and the Query Optimizer > Time Costs of a Query >

View Costs

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 ]