--没有索引时一样]SQL> select count(*) from testa;
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   SORT (AGGREGATE)
   2    1     TABLE ACCESS (FULL) OF 'TESTA'
Statistics
----------------------------------------------------------
        103  recursive calls
          5  db block gets
         10  consistent gets
          5  physical reads
          0  redo size
        152  bytes sent via SQL*Net to client
        308  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          1  rows processedSQL> select count(*) from (select * from testa);
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   SORT (AGGREGATE)
   2    1     TABLE ACCESS (FULL) OF 'TESTA'
Statistics
----------------------------------------------------------
          0  recursive calls
          4  db block gets
          1  consistent gets
          2  physical reads
          0  redo size
        169  bytes sent via SQL*Net to client
        308  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processedSQL> 

解决方案 »

  1.   

    有索引时也一样. :)SQL> select count(*) from fnd_user;
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=1)
       1    0   SORT (AGGREGATE)
       2    1     INDEX (FULL SCAN) OF 'FND_USER_U1' (UNIQUE) (Cost=1 Card
              =450)Statistics
    ----------------------------------------------------------
              0  recursive calls
              0  db block gets
              1  consistent gets
              0  physical reads
              0  redo size
            170  bytes sent via SQL*Net to client
            308  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
              1  rows processedSQL> select count(*) from (select * from fnd_user );
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=1)
       1    0   SORT (AGGREGATE)
       2    1     INDEX (FULL SCAN) OF 'FND_USER_U1' (UNIQUE) (Cost=1 Card
              =450)Statistics
    ----------------------------------------------------------
            381  recursive calls
              3  db block gets
             62  consistent gets
             12  physical reads
              0  redo size
            170  bytes sent via SQL*Net to client
            308  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
             14  sorts (memory)
              0  sorts (disk)
              1  rows processedSQL>
      

  2.   

    多谢各位帮忙,
    自己在taod 里测试了一下
    有点不大清楚