Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Pushing predicates and Analytic Functions (problem)
I'm having difficulty pushing a predicate into a view that has an
analytic function.
Optimizer is determined to keep it as a filter on the last step of the
execution plan instead of pushing it to run earlier and does them
filtering using the index.
Test case:
create table test_d1 ( c1 number not null, c2 number not null); create index bx1 on test_d1 (c2);
create table test_f1 ( c1 number not null, c2 number not null); create index bx2 on test_f1 (c1);
create or replace view test_bug as
select --+ ordered index(a,bx1) use_nl(b) index(b,x2)
a.c2, rank() over (partition by b.c1 order by b.c2 desc) m_rnkfrom test_d1 a, test_f1 b
create or replace view test_bug1 as
select --+ ordered index(a,bx1) use_nl(b) index(b,x2)
a.c2=20
from test_d1 a, test_f1 b
where a.c1 =3D b.c1
select *
from test_bug
where c2 =3D 10;
select *
from test_bug1
where c2 =3D 10;
Any ideas?
Waleed
![]() |
![]() |