The query optimizer can use statistics from the expression columns in statistical views to obtain accurate cardinality estimates which results in better access plans.
SELECT * FROM t1, t2 WHERE t2.c2 = UCASE(t1.c1)
The query optimizer can use the statistics from a statistical view for these types of queries to obtain better access plans.
CREATE VIEW sv AS (SELECT UCASE(c1) AS c1 FROM t1)
ALTER VIEW sv ENABLE QUERY OPTIMIZATION
RUNSTATS ON TABLE dba.sv WITH DISTRIBUTION
To obtain statistics for these types of queries, one side of the predicate must be an expression that matches an expression in the statistical view column definition exactly.
create view SV14(c1, c2) as (select c1+c2, c1*c2 from t1 where c1 > 3);
alter view SV14 enable query optimization;
runstats on table schema.sv1 with distribution;
select * from t1 where (c1+c2) + (c1*c2) > 5 and c1 > 3;
Here
the expression (c1+c2) + (c1*c2) matched to two columns
in view SV14. The statistics of view SV14 for this expression are
not used.create view SV15(c1, c2) as (select c1+c2, c1*c2 from t1 where c1 > 3);
alter view SV15 enable query optimization;
runstats on table schema.SV15 with distribution;
select * from t1 where (c1+c2) + 10 > 5 and c1 > 3;
Here
the expression (c1+c2) + 10 is partially matched
to c1+c2 in view SV15. The statistics of view SV15
for this expression are not used.create view SV16(c1, c2) as (select c1+c2, c1*c2 from t1 where c1 > 3);
alter view SV16 enable query optimization;
runstats on table schema.SV16 with distribution;
select * from t3 left join table (select ta.c1 from t2 left join table
(select c1+c2,c3 from t1 where c1 > 3) as ta(c1,c3) on t2.c1 = ta.c3) as
tb(c1) on t3.c1= TB.C1;
Here the column TB.C1 indirectly
matches the expression c1+c2 in view SV16. The statistics
of view SV16 for this expression are not used.