create table Ǹ
as
select rownum ȣ
     , '2008' || lpad(ceil(rownum/100000), 2, '0') Ǹſ
     , decode(mod(rownum, 12), 1, 'A', 'B') Ǹű
     , round(dbms_random.value(1000,100000), -2) Ǹűݾ
from   dual
connect by level <= 1200000 ;


create index Ǹ_IDX1 on Ǹ(Ǹű, Ǹſ);

select count(*)
from   Ǹ t
where  Ǹű = 'A'
and    Ǹſ between '200801' and '200812';


create index Ǹ_IDX2 on Ǹ(Ǹſ, Ǹű);

select /*+ index(t Ǹ_IDX2) */ count(*)
from   Ǹ t
where  Ǹű = 'A'
and    Ǹſ between '200801' and '200812';

select /*+ index(t Ǹ_IDX2) */ count(*)
from   Ǹ t
where  Ǹű = 'A'
and    Ǹſ in ( '200801', '200802', '200803', '200804', '200805', '200806' 
                 , '200807', '200808', '200809', '200810', '200811', '200812' ) ;


select /*+ INDEX_SS(t Ǹ_IDX2) */ count(*)
from   Ǹ t
where  Ǹű = 'A'
and    Ǹſ between '200801' and '200812' ;


