------------------------------------------------------------------------------------------------------------------------------
A-0    select /*+ 힌트없음 */    * from big_table X order by owner; -- Table Full Scan            [전체범위처리]   5.69s
=> 힌트 사용을 하지 않은 단순한 select 이기 때문

A-0-1 select /*+ index(X) */   * from big_table X order by owner; -- index full scan of pk(id)  [전체범위처리] 132.53s
=> 모르겟음
 
A-0-2 select /*+ FIRST_ROWS */ * from big_table X order by owner; -- index full scan of x01     [부분범위처리]   0.96s
=> first row 힌트를 사용하였기 때문에 부분범위처리
------------------------------------------------------------------------------------------------------------------------------
A-1.   select /*+ 힌트없음    */ * from big_table X order by created; --Table Full Scan         [전체범위처리] 
=> 힌트 사용을 하지 않은 단순한 select 이기 때문
 
A-1-1 select /*+ index(X)   */ * from big_table X order by created; --Index Full Scan of pk   [전체범위처리]
=> 

 A-1-2 select /*+ FIRST_ROWS */ * from big_table X order by created; --Table Full Scan         [전체범위처리] 
=> created가 선행컬럼이 아니라 created기준으로 정렬이 되어 있지않음
------------------------------------------------------------------------------------------------------------------------------
A-2.   select /*+ 힌트없음    */ * from big_table X where owner='SYS' order by created; --Table Full Scan         [전체범위처리] 
=> where 조건절의 값이 많아 굳이 인덱스를 타기 보다 full scan을 하는 것이 더 효율적

A-2-1.select /*+ index(X)   */ * from big_table X where owner='SYS' order by created; --Index Full Scan of pk   [전체범위처리] 
=> 위의 이유와 같이 SYS의 양이 압도적으로 많아 index를 타더라도 full scan을 한다

A-2-2.select /*+ FIRST_ROWS */ * from big_table X where owner='SYS' order by created; --Index RangeScan of x01  [부분범위처리]
=> 
------------------------------------------------------------------------------------------------------------------------------
A-3.   select /*+ 힌트없음    */ * from big_table X where owner='APPQOSSYS' order by created; --Index RangeScan of x01 [부분범위처리]
=> index사용이 더 효율적이라고 판단함, 조건절의 값이 많이 없거나? 하는 이유로

 A-3-1.select /*+ index(X)   */ * from big_table X where owner='APPQOSSYS' order by created; --Index RangeScan of x01 [부분범위처리]
=> index사용이 더 효율적이라고 판단함, 조건절의 값이 많이 없거나? 하는 이유로

 A-3-2.select /*+ FIRST_ROWS */ * from big_table X where owner='APPQOSSYS' order by created; --Index RangeScan of x01 [부분범위처리]
=> where절에 x01 인덱스의 선두컬럼이 있기 때문

------------------------------------------------------------------------------------------------------------------------------
B-1.   select /*+  힌트없음    */ * from big_table X order by id;     -- Index Full Scan of pk   [부분범위처리] 
=> Table Full Scan보다 cost 낮다고 판단

 B-1-1.select /*+  index(X)   */ * from big_table X order by id;     -- Index Full Scan of pk    [부분범위처리]
=> order by 절에 id가 있으면서 pk가 id이기 때문

 B-1-2.select /*+  FIRST_ROWS */ * from big_table X order by id;     -- Index Full Scan of pk    [부분범위처리]
=>

 B-1-3.select /*+  index(X x01) */ * from big_table X order by id;     -- Index Full Scan of pk    [전체범위처리]
=> X
------------------------------------------------------------------------------------------------------------------------------
B-2.   select /*+  힌트없음    */ * from big_table X where owner = 'SYS'    order by id;     -- Index Full Scan of pk    [부분범위처리]
=> sys 값이 많이 없어 full table scan 보다 인덱스를 타는것이 효율적이라 생각

 B-2-1.select /*+  index(X)   */ * from big_table X where owner = 'SYS'    order by id;     -- Index Full Scan of pk    [부분범위처리]
=> sys 값이 많이 없어 full table scan 보다 인덱스를 타는것이 효율적이라 생각

 B-2-2.select /*+  FIRST_ROWS */ * from  big_table X where owner = 'SYS'   order by id;     -- Index Full Scan of pk    [부분범위처리]
=> 
------------------------------------------------------------------------------------------------------------------------------
(23.02.24추가) -- 성능고도화2권 p.368
A-4.   select /*+ 힌트없음    */ * from big_table X order by owner, created;  --Table Full Scan         [전체범위처리] 
=> 

 A-4-1.select /*+ FIRST_ROWS  */ * from big_table X order by owner, created; -- Index Full Scan of x01  [부분범위처리]
=> first row를 가장 빨리 찾을  수 있는 방법이 인덱스를 통한 것이기 떄문