??? insert into t1_t(a,b) (select * from t1_t);
??? insert into t1_t(a,b) (select * from t1_t);
??? insert into t1_t(a,b) (select * from t1_t);
??? insert into t1_t(a,b) (select * from t1_t);
??? (select a,b,row_number() over(partition by a order by 1) k from t1_t)
??? where k=1;
----------------------------------------------------------
?? 0????? SELECT STATEMENT Optimizer=ALL_ROWS (Cost=32068 Card=3632040 Bytes=192498120)
?? 1??? 0?? VIEW (Cost=32068 Card=3632040 Bytes=192498120)
?? 2??? 1???? WINDOW (SORT PUSHED RANK) (Cost=32068 Card=3632040 Bytes=101697120)
?? 3??? 2?????? TABLE ACCESS (FULL) OF 'T1_T' (TABLE) (Cost=3255 Card=3632040 Bytes=101697120)
----------------------------------------------------------
??????? 165? recursive calls
???????? 22? db block gets
????? 17303? consistent gets
?????? 1937? physical reads
????? 75904? redo size
?????? 2682? bytes sent via SQL*Net to client
??????? 537? bytes received via SQL*Net from client
????????? 5? SQL*Net roundtrips to/from client
????????? 4? sorts (memory)
????????? 1? sorts (disk)
???????? 50? rows processed
??? where t1.rowid = t2.rid;
----------------------------------------------------------
?? 0????? SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3919 Card=50 Bytes=2000)
?? 1??? 0?? NESTED LOOPS (Cost=3919 Card=50 Bytes=2000)
?? 2??? 1???? VIEW (Cost=3869 Card=50 Bytes=600)
?? 3??? 2?????? HASH (GROUP BY) (Cost=3869 Card=50 Bytes=750)
?? 4??? 3???????? TABLE ACCESS (FULL) OF 'T1_T' (TABLE) (Cost=3243 Card=3632040 Bytes=54480600)
----------------------------------------------------------
????????? 1? recursive calls
????????? 0? db block gets
????? 16278? consistent gets
????????? 0? physical reads
????????? 0? redo size
?????? 2638? bytes sent via SQL*Net to client
??????? 537? bytes received via SQL*Net from client
????????? 5? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
???????? 50? rows processed
??? create
index
t1_t_a
on
t1_t(a);
??? create index t1_t_b on t1_t(b);
???
alter
table
t1_t
modify
a
not
null
;
??? alter table t1_t modify b not null ;
----------------------------------------------------------
?? 0????? SELECT STATEMENT Optimizer=ALL_ROWS (Cost=32068 Card=3632040 Bytes=192498120)
?? 1??? 0?? VIEW (Cost=32068 Card=3632040 Bytes=192498120)
?? 2??? 1???? WINDOW (SORT PUSHED RANK) (Cost=32068 Card=3632040 Bytes=101697120)
?? 3??? 2?????? TABLE ACCESS (FULL) OF 'T1_T' (TABLE) (Cost=3255 Card=3632040 Bytes=101697120)
----------------------------------------------------------
????????? 2? recursive calls
???????? 22? db block gets
????? 16228? consistent gets
???????? 21? physical reads
????????? 0? redo size
?????? 2682? bytes sent via SQL*Net to client
??????? 537? bytes received via SQL*Net from client
????????? 5? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 1? sorts (disk)
???????? 50? rows processed
----------------------------------------------------------
?? 0????? SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2114 Card=50 Bytes=2000)
?? 1??? 0?? NESTED LOOPS (Cost=2114 Card=50 Bytes=2000)
?? 2??? 1???? VIEW (Cost=2064 Card=50 Bytes=600)
?? 3??? 2?????? HASH (GROUP BY) (Cost=2064 Card=50 Bytes=750)
?? 4??? 3???????? INDEX (FAST FULL SCAN) OF 'T1_T_A' (INDEX) (Cost=1439 Card=3632040 Bytes=54480600)
Statistics
----------------------------------------------------------
??????? 210? recursive calls
????????? 0? db block gets
?????? 7145? consistent gets
????????? 0? physical reads
????????? 0? redo size
?????? 2638? bytes sent via SQL*Net to client
??????? 537? bytes received via SQL*Net from client
????????? 5? SQL*Net roundtrips to/from client
????????? 5? sorts (memory)
????????? 0? sorts (disk)
???????? 50? rows processed
??? select
*
from
??? (
select
/*+INDEX(t1_t t1_t_a)*/
a,b,row_number() over(
partition
by
a
order
by
1
) k
from
t1_t)
??? where k= 1 ;
Execution Plan
----------------------------------------------------------
?? 0????? SELECT STATEMENT Optimizer=ALL_ROWS (Cost=844081 Card=3632040 Bytes=192498120)
?? 1??? 0?? VIEW (Cost=844081 Card=3632040 Bytes=192498120)
?? 2??? 1???? WINDOW (NOSORT) (Cost=844081 Card=3632040 Bytes=101697120)
?? 3??? 2?????? TABLE ACCESS (BY INDEX ROWID) OF 'T1_T' (TABLE) (Cost=815268 Card=3632040Bytes=101697120)
Statistics
----------------------------------------------------------
????????? 0? recursive calls
????????? 0? db block gets
???? 814027? consistent gets
????????? 0? physical reads
????????? 0? redo size
?????? 2817? bytes sent via SQL*Net to client
??????? 537? bytes received via SQL*Net from client
????????? 5? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
???????? 50? rows processed
??? select
*
from
??? (
select
/*+INDEX(t1_t t1_t_ab)*/
a,b,row_number() over(
partition
by
a
order
by
1
) k
from
t1_t)
??? where k= 1 ;
----------------------------------------------------------
?? 0????? SELECT STATEMENT Optimizer=ALL_ROWS (Cost=48327 Card=3632040 Bytes=192498120)
?? 1??? 0?? VIEW (Cost=48327 Card=3632040 Bytes=192498120)
?? 2??? 1???? WINDOW (NOSORT) (Cost=48327 Card=3632040 Bytes=101697120)
?? 3??? 2?????? INDEX (FULL SCAN) OF 'T1_T_AB' (INDEX) (Cost=19514 Card=3632040 Bytes=1016
????????? 97120)
----------------------------------------------------------
????????? 1? recursive calls
????????? 0? db block gets
????? 19368? consistent gets
????????? 0? physical reads
????????? 0? redo size
?????? 2783? bytes sent via SQL*Net to client
??????? 537? bytes received via SQL*Net from client
????????? 5? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
???????? 50? rows processed
??? select
*
from
??? (
select
a,b,row_number() over(
partition
by
a
order
by
1
) k
from
t1_twhere a='1'
)
??? where k= 1 ;
----------------------------------------------------------
?? 0????? SELECT STATEMENT Optimizer=ALL_ROWS (Cost=1119 Card=84004 Bytes=4452212)
?? 1??? 0?? VIEW (Cost=1119 Card=84004 Bytes=4452212)
?? 2??? 1???? WINDOW (NOSORT) (Cost=1119 Card=84004 Bytes=2352112)
?? 3??? 2?????? INDEX (RANGE SCAN) OF 'T1_T_AB' (INDEX) (Cost=453 Card=84004 Bytes=2352112)
----------------------------------------------------------
????????? 1? recursive calls
????????? 0? db block gets
??????? 410? consistent gets
????????? 0? physical reads
????????? 0? redo size
??????? 537? bytes sent via SQL*Net to client
??????? 504? bytes received via SQL*Net from client
????????? 2? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
????????? 1? rows processed