| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: is it possible in pl/sql?
On Thu, 10 Feb 2005 09:37:44 +0000, Steve Jelfs <steve_at_trolltec.co.uk> wrote:
> Not sure about count(1) being more efficient.  I, personally, have never
> seen any evidence for that!
> Steve
That is because it isn't
USER @ orcl>drop table t1;
Table dropped.
USER @ orcl>create table t1
  2  nologging
  3  as select a.*
  4  from all_objects a,all_objects b
  5  where rownum < 1000001;
Table created.
USER @ orcl>set autotrace on statistics
USER @ orcl>select count(*)
  2  from t1;
COUNT(*)
1000000
1 row selected.
Statistics
         28  recursive calls
          0  db block gets
      10997  consistent gets
      11282  physical reads
          0  redo size
        393  bytes sent via SQL*Net to client
        508  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
USER @ orcl>/
COUNT(*)
1000000
1 row selected.
Statistics
          0  recursive calls
          0  db block gets
      10903  consistent gets
      10660  physical reads
          0  redo size
        393  bytes sent via SQL*Net to client
        508  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
USER @ orcl>;
  1  select count(*)
  2* from t1
USER @ orcl>/
COUNT(*)
1000000
1 row selected.
Statistics
          0  recursive calls
          0  db block gets
      10903  consistent gets
      10692  physical reads
          0  redo size
        393  bytes sent via SQL*Net to client
        508  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
USER @ orcl>select count(1)
  2  from t1;
COUNT(1)
1000000
1 row selected.
Statistics
          5  recursive calls
          0  db block gets
      10995  consistent gets
      11260  physical reads
          0  redo size
        393  bytes sent via SQL*Net to client
        508  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
USER @ orcl>/
COUNT(1)
1000000
1 row selected.
Statistics
          0  recursive calls
          0  db block gets
      10903  consistent gets
      10656  physical reads
          0  redo size
        393  bytes sent via SQL*Net to client
        508  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
USER @ orcl>
note that once we have settled down the number of consistent gets and consistent reads is identical for the two alternative plans as is the network traffic.
-- Niall Litchfield Oracle DBA http://www.niall.litchfield.dial.pipex.com -- http://www.freelists.org/webpage/oracle-lReceived on Thu Feb 10 2005 - 05:34:21 CST
![]()  | 
![]()  |