zoukankan      html  css  js  c++  java
  • 普通索引的使用方式

    环境准备:

    SCOTT@test>select * from v$version;

    BANNER

    -----------------------------------------------------------------------------------------

    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production

    PL/SQL Release 11.2.0.4.0 - Production

    CORE 11.2.0.4.0 Production

    TNS for Linux: Version 11.2.0.4.0 - Production

    NLSRTL Version 11.2.0.4.0 - Production

    SCOTT@test>create table ob as select * from dba_objects;

    Table created.

    Elapsed: 00:00:01.10

    SCOTT@test>set autot trace;

    SCOTT@test>analyze table ob compute statistics;

    Table analyzed.

    Elapsed: 00:00:01.89

    SCOTT@test>set lines 150

    1. INDEX RANGE SCAN

    SCOTT@test>create index i_ob_id on ob(object_id);

    Index created.

    Elapsed: 00:00:00.36

    SCOTT@test>select count(*) from ob where object_id=100;

    Elapsed: 00:00:00.04

    Execution Plan

    ----------------------------------------------------------

    Plan hash value: 2010433984

    -----------------------------------------------------------------------------

    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

    -----------------------------------------------------------------------------

    | 0 | SELECT STATEMENT | | 1 | 4 | 1 (0)| 00:00:01 |

    | 1 | SORT AGGREGATE | | 1 | 4 | | |

    |* 2 | INDEX RANGE SCAN| I_OB_ID | 1 | 4 | 1 (0)| 00:00:01 |

    -----------------------------------------------------------------------------

    Predicate Information (identified by operation id):

    ---------------------------------------------------

    2 - access("OBJECT_ID"=100)

    Statistics

    ----------------------------------------------------------

    1 recursive calls

    0 db block gets

    2 consistent gets

    0 physical reads

    0 redo size

    422 bytes sent via SQL*Net to client

    419 bytes received via SQL*Net from client

    2 SQL*Net roundtrips to/from client

    0 sorts (memory)

    0 sorts (disk)

    1 rows processed

    2. INDEX UNIQUE SCAN

    SCOTT@test>drop index i_ob_id;

    Index dropped.

    Elapsed: 00:00:00.11

    SCOTT@test>create unique index i_ob_id on ob(object_id);

    Index created.

    Elapsed: 00:00:00.27

    SCOTT@test>select count(*) from ob where object_id=100;

    Elapsed: 00:00:00.01

    Execution Plan

    ----------------------------------------------------------

    Plan hash value: 3647361231

    ------------------------------------------------------------------------------

    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

    ------------------------------------------------------------------------------

    | 0 | SELECT STATEMENT | | 1 | 4 | 1 (0)| 00:00:01 |

    | 1 | SORT AGGREGATE | | 1 | 4 | | |

    |* 2 | INDEX UNIQUE SCAN| I_OB_ID | 1 | 4 | 1 (0)| 00:00:01 |

    ------------------------------------------------------------------------------

    Predicate Information (identified by operation id):

    ---------------------------------------------------

    2 - access("OBJECT_ID"=100)

    Statistics

    ----------------------------------------------------------

    1 recursive calls

    0 db block gets

    2 consistent gets

    1 physical reads

    0 redo size

    422 bytes sent via SQL*Net to client

    419 bytes received via SQL*Net from client

    2 SQL*Net roundtrips to/from client

    0 sorts (memory)

    0 sorts (disk)

    1 rows processed

    3. INDEX FAST FULL SCAN

    SCOTT@test>select object_id from ob;

    86789 rows selected.

    Elapsed: 00:00:01.02

    Execution Plan

    ----------------------------------------------------------

    Plan hash value: 1611727973

    --------------------------------------------------------------------------

    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

    --------------------------------------------------------------------------

    | 0 | SELECT STATEMENT | | 86789 | 339K| 346 (1)| 00:00:05 |

    | 1 | TABLE ACCESS FULL| OB | 86789 | 339K| 346 (1)| 00:00:05 |

    --------------------------------------------------------------------------

    Statistics

    ----------------------------------------------------------

    1 recursive calls

    0 db block gets

    6924 consistent gets

    0 physical reads

    0 redo size

    1262506 bytes sent via SQL*Net to client

    64054 bytes received via SQL*Net from client

    5787 SQL*Net roundtrips to/from client

    0 sorts (memory)

    0 sorts (disk)

    86789 rows processed

    SCOTT@test>alter table ob modify(object_id number constraint nn not null);

    Table altered.

    Elapsed: 00:00:00.16

    SCOTT@test>select object_id from ob;

    86789 rows selected.

    Elapsed: 00:00:00.81

    Execution Plan

    ----------------------------------------------------------

    Plan hash value: 2260539534

    --------------------------------------------------------------------------------

    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

    --------------------------------------------------------------------------------

    | 0 | SELECT STATEMENT | | 86789 | 339K| 51 (0)| 00:00:01 |

    | 1 | INDEX FAST FULL SCAN| I_OB_ID | 86789 | 339K| 51 (0)| 00:00:01 |

    --------------------------------------------------------------------------------

    Statistics

    ----------------------------------------------------------

    29 recursive calls

    0 db block gets

    5990 consistent gets

    179 physical reads

    0 redo size

    1262506 bytes sent via SQL*Net to client

    64054 bytes received via SQL*Net from client

    5787 SQL*Net roundtrips to/from client

    6 sorts (memory)

    0 sorts (disk)

    86789 rows processed

    4. INDEX FULL SCAN

    SCOTT@test>select object_id from ob order by 1;

    86789 rows selected.

    Elapsed: 00:00:00.85

    Execution Plan

    ----------------------------------------------------------

    Plan hash value: 2425389225

    ----------------------------------------------------------------------------

    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

    ----------------------------------------------------------------------------

    | 0 | SELECT STATEMENT | | 86789 | 339K| 182 (1)| 00:00:03 |

    | 1 | INDEX FULL SCAN | I_OB_ID | 86789 | 339K| 182 (1)| 00:00:03 |

    ----------------------------------------------------------------------------

    Statistics

    ----------------------------------------------------------

    1 recursive calls

    0 db block gets

    5952 consistent gets

    0 physical reads

    0 redo size

    1262506 bytes sent via SQL*Net to client

    64054 bytes received via SQL*Net from client

    5787 SQL*Net roundtrips to/from client

    0 sorts (memory)

    0 sorts (disk)

    86789 rows processed

    5. INDEX FULL SCAN DESCENDING

    SCOTT@test>select object_id from ob order by 1 desc;

    86789 rows selected.

    Elapsed: 00:00:00.81

    Execution Plan

    ----------------------------------------------------------

    Plan hash value: 606382278

    --------------------------------------------------------------------------------------

    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

    --------------------------------------------------------------------------------------

    | 0 | SELECT STATEMENT | | 86789 | 339K| 182 (1)| 00:00:03 |

    | 1 | INDEX FULL SCAN DESCENDING| I_OB_ID | 86789 | 339K| 182 (1)| 00:00:03 |

    --------------------------------------------------------------------------------------

    Statistics

    ----------------------------------------------------------

    1 recursive calls

    0 db block gets

    5952 consistent gets

    0 physical reads

    0 redo size

    1262506 bytes sent via SQL*Net to client

    64054 bytes received via SQL*Net from client

    5787 SQL*Net roundtrips to/from client

    0 sorts (memory)

    0 sorts (disk)

    86789 rows processed

    6. INDEX SKIP SCAN

    SCOTT@test>create index i_ob2_2 on ob(owner,object_type,object_name);

    Index created.

    Elapsed: 00:00:00.53

    SCOTT@test>analyze table ob compute statistics for all indexed columns;

    Table analyzed.

    Elapsed: 00:00:01.37

    SCOTT@test>select owner,object_type,object_name from ob where object_type='RULE';

    Elapsed: 00:00:00.01

    Execution Plan

    ----------------------------------------------------------

    Plan hash value: 19331172

    ----------------------------------------------------------------------------

    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

    ----------------------------------------------------------------------------

    | 0 | SELECT STATEMENT | | 1 | 37 | 32 (0)| 00:00:01 |

    |* 1 | INDEX SKIP SCAN | I_OB2_2 | 1 | 37 | 32 (0)| 00:00:01 |

    ----------------------------------------------------------------------------

    Predicate Information (identified by operation id):

    ---------------------------------------------------

    1 - access("OBJECT_TYPE"='RULE')

    filter("OBJECT_TYPE"='RULE')

    Statistics

    ----------------------------------------------------------

    1 recursive calls

    0 db block gets

    37 consistent gets

    34 physical reads

    0 redo size

    567 bytes sent via SQL*Net to client

    419 bytes received via SQL*Net from client

    2 SQL*Net roundtrips to/from client

    0 sorts (memory)

    0 sorts (disk)

    1 rows processed

    SCOTT@test>spool off;

  • 相关阅读:
    《设计模式》-原则二:里氏代换原则(LSP)
    设计模式从0开始
    net reactor加密源码保软件安全-net reactor使用教程
    python中import和from...import区别
    Python之import
    c#执行bat批处理文件,并通过线程将结果显示在控件中
    C#中双问号、双冒号等几个特殊关键字
    Eclipse debug高级技巧(转)
    Android从零开始--安装
    以另一个用户来运行程序
  • 原文地址:https://www.cnblogs.com/afx1007/p/4065987.html
Copyright © 2011-2022 走看看