analyze compute statistics on table with index : analyze « SQL PLUS Session Environment « Oracle PL/SQL Tutorial






SQL>
SQL> create table I1(n number primary key, v varchar2(10));

Table created.

SQL> create table I2(n number primary key, v varchar2(10));

Table created.

SQL>
SQL> create table MAP
  2  (n number primary key,
  3   i1 number referencing I1(n),
  4   i2 number referencing I2(n));

Table created.

SQL>
SQL> create unique index IDX_MAP on MAP(i1, i2);

Index created.

SQL> set autotrace traceonly
SQL>
SQL> select * from i1,map,i2
  2   where     i1.n = map.i1
  3   and i2.n = map.i2
  4   and i1.v = 'x'
  5   and i2.v = 'y';

no rows selected


Execution Plan
----------------------------------------------------------
Plan hash value: 3070822050

---------------------------------------------------------------------------------------------
| Id  | Operation                     | Name        | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |             |     1 |    79 |     4   (0)| 00:00:01 |
|   1 |  NESTED LOOPS                 |             |     1 |    79 |     4   (0)| 00:00:01 |
|   2 |   NESTED LOOPS                |             |     1 |    59 |     3   (0)| 00:00:01 |
|   3 |    TABLE ACCESS FULL          | MAP         |     1 |    39 |     2   (0)| 00:00:01 |
|*  4 |    TABLE ACCESS BY INDEX ROWID| I1          |     1 |    20 |     1   (0)| 00:00:01 |
|*  5 |     INDEX UNIQUE SCAN         | SYS_C008275 |     1 |       |     1   (0)| 00:00:01 |
|*  6 |   TABLE ACCESS BY INDEX ROWID | I2          |     1 |    20 |     1   (0)| 00:00:01 |
|*  7 |    INDEX UNIQUE SCAN          | SYS_C008276 |     1 |       |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   4 - filter("I1"."V"='x')
   5 - access("I1"."N"="MAP"."I1")
   6 - filter("I2"."V"='y')
   7 - access("I2"."N"="MAP"."I2")

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
         44  recursive calls
          0  db block gets
         13  consistent gets
          0  physical reads
          0  redo size
        578  bytes sent via SQL*Net to client
        369  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

SQL>
SQL> analyze table i1 compute statistics;

Table analyzed.

SQL>
SQL> analyze table i2 compute statistics;

Table analyzed.

SQL>
SQL> analyze table map compute statistics;

Table analyzed.

SQL>
SQL> select * from i1,map,i2
  2   where     i1.n = map.i1
  3   and i2.n = map.i2
  4   and i1.v = 'x'
  5   and i2.v = 'y';

no rows selected


Execution Plan
----------------------------------------------------------
Plan hash value: 1158434662

---------------------------------------------------------------------------------------------
| Id  | Operation                     | Name        | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |             |     1 |    79 |     4   (0)| 00:00:01 |
|   1 |  NESTED LOOPS                 |             |     1 |    79 |     4   (0)| 00:00:01 |
|   2 |   NESTED LOOPS                |             |     1 |    59 |     3   (0)| 00:00:01 |
|*  3 |    TABLE ACCESS FULL          | I1          |     1 |    20 |     2   (0)| 00:00:01 |
|   4 |    TABLE ACCESS BY INDEX ROWID| MAP         |     1 |    39 |     1   (0)| 00:00:01 |
|*  5 |     INDEX RANGE SCAN          | IDX_MAP     |     1 |       |     1   (0)| 00:00:01 |
|*  6 |   TABLE ACCESS BY INDEX ROWID | I2          |     1 |    20 |     1   (0)| 00:00:01 |
|*  7 |    INDEX UNIQUE SCAN          | SYS_C008276 |     1 |       |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - filter("I1"."V"='x')
   5 - access("I1"."N"="MAP"."I1")
   6 - filter("I2"."V"='y')
   7 - access("I2"."N"="MAP"."I2")


Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          3  consistent gets
          0  physical reads
          0  redo size
        578  bytes sent via SQL*Net to client
        369  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

SQL>
SQL> set autotrace off
SQL>
SQL> create index i1_idx on i1(v);

Index created.

SQL>
SQL> analyze table i1 compute statistics;

Table analyzed.

SQL>
SQL> set autotrace traceonly
SQL>
SQL> select * from i1,map,i2
  2  where     i1.n = map.i1
  3  and i2.n = map.i2
  4  and i1.v = 'x'
  5  and i2.v = 'y';

no rows selected


Execution Plan
----------------------------------------------------------
Plan hash value: 1388106715

---------------------------------------------------------------------------------------------
| Id  | Operation                     | Name        | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |             |     1 |    79 |     3   (0)| 00:00:01 |
|   1 |  NESTED LOOPS                 |             |     1 |    79 |     3   (0)| 00:00:01 |
|   2 |   NESTED LOOPS                |             |     1 |    59 |     2   (0)| 00:00:01 |
|   3 |    TABLE ACCESS BY INDEX ROWID| I1          |     1 |    20 |     1   (0)| 00:00:01 |
|*  4 |     INDEX RANGE SCAN          | I1_IDX      |     1 |       |     1   (0)| 00:00:01 |
|   5 |    TABLE ACCESS BY INDEX ROWID| MAP         |     1 |    39 |     1   (0)| 00:00:01 |
|*  6 |     INDEX RANGE SCAN          | IDX_MAP     |     1 |       |     1   (0)| 00:00:01 |
|*  7 |   TABLE ACCESS BY INDEX ROWID | I2          |     1 |    20 |     1   (0)| 00:00:01 |
|*  8 |    INDEX UNIQUE SCAN          | SYS_C008276 |     1 |       |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   4 - access("I1"."V"='x')
   6 - access("I1"."N"="MAP"."I1")
   7 - filter("I2"."V"='y')
   8 - access("I2"."N"="MAP"."I2")


Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          1  consistent gets
          0  physical reads
          0  redo size
        578  bytes sent via SQL*Net to client
        369  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

SQL>
SQL> set autotrace off








29.33.analyze
29.33.1.analyze table compute statistics
29.33.2.analyze compute statistics on table with index
29.33.3.Analyze table with user defined column type
29.33.4.analyze table compute statistics for table for all indexes for all indexed columns
29.33.5.analyze and autotrace full outer join and union
29.33.6.analyze and autotrace single column key and multi-column key
29.33.7.analyze and autotrace table with primary key
29.33.8.analyze index t_idx validate structure
29.33.9.analyze table TABLENAME compute statistics;
29.33.10.analyze table after creating index
29.33.11.analyze table estimate statistics
29.33.12.analyze table students compute statistics
29.33.13.analyze table t compute statistics for table for columns id;
29.33.14.analyze table t compute statistics for table, for all indexes, for all indexed columns