Oacle count (*) 색인 으로 갈 지 여부

count(*)      ,        ,      ,       !       count(*)     !   
create table t3
(
sid number not null primary key,
sno number,
sname varchar2(10)
)
tablespace test;
declare
        maxrecords constant int:=100000;
        i int :=1;
    begin
        for i in 1..maxrecords loop
          insert into t3 values(i,i,'ocpyang');
        end loop;
    dbms_output.put_line('       ! ');
    commit;
    end;
/
declare
        maxrecords constant int:=200000;
        i int :=100001;
    begin
        for i in 100001..maxrecords loop
          insert into t3(sid,sname) values(i,'ocpyang');
        end loop;
    dbms_output.put_line('       ! ');
    commit;
    end;
/
create index index_sno on t3(sno);
exec dbms_stats.gather_table_stats('SYS','T3',cascade=>TRUE);
***********
1.count
***********
SQL> set autotrace traceonly explain stat;
SQL> select count(*) from t3;
    
----------------------------------------------------------
Plan hash value: 463314188
-------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Cost (%CPU)| Time     |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |     1 |     2   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE    |      |     1 |            |          |
|   2 |   TABLE ACCESS FULL| T3   |    82 |     2   (0)| 00:00:01 |
-------------------------------------------------------------------
Note
-----
   - SQL plan baseline "SQL_PLAN_27gnhfjz9qahj14fae16c" used for this statement
    
----------------------------------------------------------
         55  recursive calls
         38  db block gets
        521  consistent gets
         19  physical reads
      14676  redo size
        527  bytes sent via SQL*Net to client
        520  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
--         .
SQL> select count(*) from t1 where sid is not null;
    
----------------------------------------------------------
Plan hash value: 1551730033
--------------------------------------------------------------------------------------
| Id  | Operation             | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |              |     1 |    13 |    68   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE       |              |     1 |    13 |            |          |
|   2 |   INDEX FAST FULL SCAN| SYS_C0023596 | 85899 |  1090K|    68   (0)| 00:00:01 |
--------------------------------------------------------------------------------------
Note
-----
   - dynamic sampling used for this statement (level=2)
   - SQL plan baseline "SQL_PLAN_4xztry6akgpqqf2d247c8" used for this statement
    
----------------------------------------------------------
          4  recursive calls
          0  db block gets
        310  consistent gets
          0  physical reads
          0  redo size
        527  bytes sent via SQL*Net to client
        520  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
--       .

좋은 웹페이지 즐겨찾기