create table tq84_xy (
id integer primary key,
val number ( 7,2) not null,
x varchar2(10 ) not null,
y varchar2(10 ) not null
);
create index tq84_ix_x on tq84_xy(x);
create index tq84_ix_y on tq84_xy(y);
begin
dbms_random.seed(2808);
insert into tq84_xy
select
level,
dbms_random.value(100, 100000),
dbms_random.string('a', 10),
dbms_random.string('a', 10)
from
dual connect by level <= 10000;
dbms_stats.gather_table_stats(user, 'tq84_xy');
end;
/
explain plan for
select /*+ use_concat */
val
from
tq84_xy
where
x = 'hMZLVdpoub' or
y = 'xFOwpLURXi';
select * from dbms_xplan.display(format=>'basic');
--
-- ----------------------------------------------------------
-- | Id | Operation | Name |
-- ----------------------------------------------------------
-- | 0 | SELECT STATEMENT | |
-- | 1 | CONCATENATION | |
-- | 2 | TABLE ACCESS BY INDEX ROWID BATCHED| TQ84_XY |
-- | 3 | INDEX RANGE SCAN | TQ84_IX_Y |
-- | 4 | TABLE ACCESS BY INDEX ROWID BATCHED| TQ84_XY |
-- | 5 | INDEX RANGE SCAN | TQ84_IX_X |
-- ----------------------------------------------------------
drop table tq84_xy;