标签:index
经常我们需要将大表根据分区键进行分区,当建立索引的时候,我们到底使用local 还是global 索引呢
先看看两种索引的特点:
----------------------------------------------------------------------------------------------------------------------- | Id | Operation |Name | Starts | E-Rows | A-Rows |Buffers |Pstart| Pstop | ----------------------------------------------------------------------------------------------------------------------- | 0 |SELECT STATEMENT | | 1 | | 1493 | 2984 | | | | 1 | PARTITION RANGEALL | | 1 | 1493 | 1493 | 2984 | 1 | 1493 | | 2 | TABLE ACCESS BY LOCAL INDEX ROWID| PARTITIONED_TAB | 1493 | 1493 | 1493 | 2984 | 1 | 1493 | |* 3 | INDEX RANGE SCAN | LC_NON_PREFIXED_TYP_I | 1492 | 1493 | 1493 | 1492 | 1 | 1493 | ----------------------------------------------------------------------------------------------------------------------- Predicate Information (identifiedby operation id): --------------------------------------------------- 3 - access(MHO_TYP_ID=0) Statistics ---------------------------------------------------------- 0 recursive calls 0 db block gets 2984 consistent gets 0 physical reads 0 redosize 28937 bytes sent via SQL*Netto client 372 bytes received via SQL*Netfrom client 4 SQL*Net roundtripsto/fromclient 0 sorts (memory) 0 sorts (disk) 1493 rows processed
SQL>select * from partitioned_tab wheremho_typ_id = 0 and mho_date = to_date('01122012','ddmmyyyy'); MHO_ID MHO_DATE M MHO_TYP_ID ---------- ----------------- - ---------- 1 20121201 00:00:00 Z 0 ------------------------------------------------------------------------------------------------------------------------- | Id | Operation |Name | Starts | E-Rows | A-Rows | Buffers | Pstart| Pstop | ------------------------------------------------------------------------------------------------------------------------- | 0 |SELECT STATEMENT | | 1 | | 1 | 2 | | | | 1 | PARTITION RANGE SINGLE | | 1 | 1 | 1 | 2 | 2 | 2 | |* 2 | TABLE ACCESS BY LOCAL INDEX ROWID| PARTITIONED_TAB | 1 | 1 | 1 | 2 | 2 | 2 | |* 3 | INDEX RANGE SCAN | LC_NON_PREFIXED_TYP_I | 1 | 1 | 1 | 1 | 2 | 2 | ------------------------------------------------------------------------------------------------------------------------- Predicate Information (identifiedby operation id): --------------------------------------------------- 2 - filter(MHO_DATE=TO_DATE(' 2012-12-01 00:00:00','syyyy-mm-dd hh24:mi:ss')) 3 - access(MHO_TYP_ID=0)
SQL>select * from partitioned_tab where mho_typ_id = 0; ------------------------------------------------------------------------------------------------------------------ | Id | Operation |Name | Starts | E-Rows | A-Rows |Buffers | Pstart| Pstop | ------------------------------------------------------------------------------------------------------------------ | 0 |SELECT STATEMENT | | 1 | | 1493 | 1496 | | | | 1 | TABLE ACCESS BY GLOBAL INDEX ROWID| PARTITIONED_TAB | 1 | 1493 | 1493 | 1496 | ROWID | ROWID | |* 2 | INDEX RANGE SCAN | GL_TYP_I | 1 | 1493 | 1493 | 4 | | | ------------------------------------------------------------------------------------------------------------------ Predicate Information (identifiedby operation id): --------------------------------------------------- 2 - access(MHO_TYP_ID=0) Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 1496 consistent gets 1493 physical reads 0 redosize 28937 bytes sent via SQL*Netto client 372 bytes received via SQL*Netfrom client 4 SQL*Net roundtripsto/fromclient 0 sorts (memory) 0 sorts (disk) 1493 rows processed
标签:index
原文地址:http://blog.csdn.net/zbdba/article/details/40047217