Rebuild the range-Hash partitioned local index

Hi all

We have a table with 400 million records in our dataware House environment. It is partitioned using range-Hash Partitioning composit. He used a global Indexes previously. Last month the global indices have been changed to the index the. Since then, Exchange and index rebuild partition takes twice against the take used previously. From my understanding local index should provide availability high and more usable in the warehouse environment. Please correct me if I'm wrong and give me your suggestion. Also, I'm looking for a good material for the exchange of the partition and Index rebild with locally manage the range-hash partitioned index. Let me know if you know a good link for this...


Thanks in advance...

Dear krmreddy,

Carefully read the following link and I hope this will guide you;

http://asktom.Oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:223318100346512896

Kind regards.

Ogan

Tags: Database

Similar Questions

  • Too many IOs logical on a partition locally index!

    Hi all.

    The database is 11.2.0.3 on a linux machine.

    I have issued a request and concluded that the 0 row was extract but logic ios on index 'IN_BPMDNPMTACT_DX1' is more than 25000 blocks.

    I would like to know whence 25006 block e/s on the index. (Operation ID = 12)

    -the partition number is 6.
    -----------------------------------------------------------------------------------------------------------------------------------------------------------
    | Id  | Operation                     | Name               | Starts | E-Time   | Pstart| Pstop | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |
    -----------------------------------------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT              |                    |      1 |          |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |   1 |  NESTED LOOPS                 |                    |      1 | 00:07:35 |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |   2 |   VIEW                        | VW_NSO_1           |      1 | 00:07:34 |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |   3 |    HASH UNIQUE                |                    |      1 | 00:07:34 |       |       |      0 |00:00:00.08 |   25006 |  1036K|  1036K|      |
    |   4 |     HASH GROUP BY             |                    |      1 | 00:07:34 |       |       |      0 |00:00:00.08 |   25006 |   792K|   792K|      |
    |*  5 |      FILTER                   |                    |      1 |          |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |   6 |       VIEW                    |                    |      1 | 00:06:16 |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |*  7 |        COUNT STOPKEY          |                    |      1 |          |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |   8 |         VIEW                  |                    |      1 | 00:06:16 |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |*  9 |          SORT ORDER BY STOPKEY|                    |      1 | 00:06:16 |       |       |      0 |00:00:00.08 |   25006 |  1024 |  1024 |      |
    |  10 |           PARTITION RANGE ALL |                    |      1 | 00:02:10 |     1 |     6 |      0 |00:00:00.08 |   25006 |       |       |      |
    |* 11 |            COUNT STOPKEY      |                    |      6 |          |       |       |      0 |00:00:00.08 |   25006 |       |       |      |
    |* 12 |             INDEX RANGE SCAN  | IN_BPMDNPMTACT_DX1 |      6 | 00:02:10 |     1 |     6 |      0 |00:00:00.08 |   25006 |       |       |      |
    |  13 |       PARTITION RANGE ALL     |                    |      0 | 00:00:01 |     1 |     6 |      0 |00:00:00.01 |       0 |       |       |      |
    |* 14 |        INDEX RANGE SCAN       | IN_BPMDNPMTACT_DX2 |      0 | 00:00:01 |     1 |     6 |      0 |00:00:00.01 |       0 |       |       |      |
    |  15 |   TABLE ACCESS BY USER ROWID  | IN_BPMDNPMTACT     |      0 | 00:00:01 | ROWID | ROWID |      0 |00:00:00.01 |       0 |       |       |      |
    -----------------------------------------------------------------------------------------------------------------------------------------------------------
    
    The following is the result of analyze index validate structure.
    
    ------------
    
    
    HEIGHT     BLOCKS     NAME     PARTITION_NAME     LF_ROWS     LF_BLKS     BR_ROWS     BR_BLKS     DEL_LF_ROWS
    4     182424     IN_BPMDNPMTACT_DX1     P201208     21655066     173118     173117     592     1790326
    3     28304     IN_BPMDNPMTACT_DX1     P201209     4019084     27256     27255     73     0
    3     29304     IN_BPMDNPMTACT_DX1     P201210     4186481     28465     28464     74     0
    3     32704     IN_BPMDNPMTACT_DX1     P201211     2813299     32019     32018     121     0
    
    -----------------------------
    Thanks in advance.

    Best regards.

    869578 wrote:
    Thanks for your reply.

    I've done the dump of tree of index, and the trace file has 107309 lines.

    The result of dump tree index is too large.

    However, as you name, I found a lot of "rrow:0". "in the middle of the trace file.

    I think the Index rebuild could solve this excessive logical IOs on the index.

    I just wonder why more than 20,000 block io is required in the row of retriving '0' on the index analysis.

    I would like to know how oracle handle b * tree index structure in update has occurred.

    I greped the total output trace file with "St: 0".
    The total number of "Saint: 0" is 27156.

    -- *************

    The leafs in this index of the average 27 156 block is empty due to the update?

    And "proc_rslt = 1" predicate scanned near the pads of sheets "rrow:0". » ?

    When an index entry is "updated", basically a delete and insert operation is performed. This is to keep the index entries still in order. Thus, after the update all entries with a value '1', they are all logically deleted and reinserted elsewhere within the structure of the index. If these updates are all done in a single transaction, the deleted index entries space can not claimed in the transaction and all the entries are simply marked as deleted.

    However, the industry still blocks reference these locations as new data with a value of '1' may be restored later. These blocks actually empty sheets can be recycled to reintegrate later, but until then, they remain in the index structure and because they can contain a value '1', must be analysed on a case where by your query.

    This is a classic example of when an index rebuild (or coalesce) could indeed be beneficial because you deleted effectively many entries index without re - insert a similar volume and you have questions which analyzes the part of the index that contains these many deleted entries.

    See you soon

    Richard Foote
    http://richardfoote.WordPress.com/

  • Creating partitioned local index

    Hi all

    Planing to run the range-partitioned on a table and creating Local partitioned index, but in the table is seen forced composite primary key thought to previously create Composite Unique Local partitioned index.

    Problem is when creating index its error ORA-14039 giving, of course it is not possible as partitioning column is not a subset of columns in a UNIQUE index key.

    Is there no workaround solution to create Local partitioned indexes... otherwise I'll be forced to create the overall index part?

    Y at - it no drawback if I create Composite Unique Local partitioned indexes including the columns of partitioning on purpose?

    There will be no impact if I create the index Composite Unique Local partitioned by including the columns voluntarily on the SQL QUERIES, access this table partitioning?

    Please suggest me a workaround solution.
    CREATE TABLE YASIR.CS_RESEARCH (ORDER_NBR NUMBER NOT NULL,
                          ORDER_DETAIL_NBR NUMBER NOT NULL,
                          SESSION_ID VARCHAR2(40),
                          PRODUCT_GROUP VARCHAR2(16) NOT NULL,
                          PRODUCT_SUBGROUP VARCHAR2(16) DEFAULT 'N/A',
                          FORMAT_TYPE VARCHAR2(10) NOT NULL,
                          CONTRIBUTOR VARCHAR2(60) NOT NULL,
                          DOCUMENT_NUMBER VARCHAR2(15) NOT NULL,
                          DOCUMENT_DATE DATE,
                          BILLABLE_PAGES NUMBER,
                          NON_BILLABLE_PAGES VARCHAR2(512),
                          PURCHASED_UNITS VARCHAR2(2000),
                          DELIVERY_METHOD VARCHAR2(6) DEFAULT 'ONLINE',
                          COMPANY_NAME VARCHAR2(120),
                          STATUS VARCHAR2(10) DEFAULT 'NEW',
                          CONTENT_CODE VARCHAR2(15) NOT NULL, 
                          CONTENT_CODE_DESC VARCHAR2(60),
                          ITEM_PRICE NUMBER NOT NULL,
                          PAGES_ORDERED NUMBER,
                          LAST_MNT_DATE_TIME DATE NOT NULL,
                          LAST_MNT_OPID VARCHAR2(120) NOT NULL,
                          CREATE_DATE DATE NOT NULL,
                          DML_FLAG CHAR(1) NOT NULL)
         PARTITION BY RANGE (CREATE_DATE) 
         (PARTITION CS_RESEARCH_2009_Q2 VALUES LESS THAN (MAXVALUE));
    
    ###Split partitions:
    ALTER TABLE YASIR.cs_research
      SPLIT PARTITION CS_RESEARCH_2009_Q2 AT (TO_DATE('30-SEP-2007 23:59:59', 'DD-MON-YYYY HH24:MI:SS'))
      INTO (PARTITION CS_RESEARCH_2007_Q3,
            PARTITION CS_RESEARCH_2009_Q2);
    
    ALTER TABLE YASIR.cs_research
      SPLIT PARTITION CS_RESEARCH_2009_Q2 AT (TO_DATE('31-DEC-2007 23:59:59', 'DD-MON-YYYY HH24:MI:SS'))
      INTO (PARTITION CS_RESEARCH_2007_Q4,
            PARTITION CS_RESEARCH_2009_Q2);
    
    ALTER TABLE YASIR.cs_research
      SPLIT PARTITION CS_RESEARCH_2009_Q2 AT (TO_DATE('31-MAR-2008 23:59:59', 'DD-MON-YYYY HH24:MI:SS'))
      INTO (PARTITION CS_RESEARCH_2008_Q1,
            PARTITION CS_RESEARCH_2009_Q2);
    
    ALTER TABLE YASIR.cs_research
      SPLIT PARTITION CS_RESEARCH_2009_Q2 AT (TO_DATE('30-JUN-2008 23:59:59', 'DD-MON-YYYY HH24:MI:SS'))
      INTO (PARTITION CS_RESEARCH_2008_Q2,
            PARTITION CS_RESEARCH_2009_Q2);
    
    ALTER TABLE YASIR.cs_research
      SPLIT PARTITION CS_RESEARCH_2009_Q2 AT (TO_DATE('30-SEP-2008 23:59:59', 'DD-MON-YYYY HH24:MI:SS'))
      INTO (PARTITION CS_RESEARCH_2008_Q3,
            PARTITION CS_RESEARCH_2009_Q2);
    
    ALTER TABLE YASIR.cs_research
      SPLIT PARTITION CS_RESEARCH_2009_Q2 AT (TO_DATE('31-DEC-2008 23:59:59', 'DD-MON-YYYY HH24:MI:SS'))
      INTO (PARTITION CS_RESEARCH_2008_Q4,
            PARTITION CS_RESEARCH_2009_Q2);
    
    ALTER TABLE YASIR.cs_research
      SPLIT PARTITION CS_RESEARCH_2009_Q2 AT (TO_DATE('31-MAR-2009 23:59:59', 'DD-MON-YYYY HH24:MI:SS'))
      INTO (PARTITION CS_RESEARCH_2009_Q1,
            PARTITION CS_RESEARCH_2009_Q2);
    
    ###Create indexes on cs_research except primary key index CSR_PKEY:
    alter session set sort_area_size=262144000; -----(250MB Total will be 1GB for 4 parallel process)
    create index YASIR.CSR_DETAIL_NBR on YASIR.CS_RESEARCH(TO_NUMBER(REPLACE(TO_CHAR(ORDER_NBR,'999999999')||TO_CHAR(ORDER_DETAIL_NBR,'999999999'),' ',''),'999999999999')) LOCAL
              (PARTITION CS_RESEARCH_2007_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2007_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q2 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q2 TABLESPACE USERS)
         nologging parallel (degree 4);
    Index created.
    
    create index YASIR.CSR_SESSION on YASIR.CS_RESEARCH(SESSION_ID,ORDER_NBR) LOCAL
              (PARTITION CS_RESEARCH_2007_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2007_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q2 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q2 TABLESPACE USERS)
         nologging parallel (degree 4);
    Index created.
    
    create index YASIR.CSR_CREATED on YASIR.CS_RESEARCH(CREATE_DATE) LOCAL
              (PARTITION CS_RESEARCH_2007_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2007_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q2 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q2 TABLESPACE USERS)
         nologging parallel (degree 4); 
    Index created.
    
    create index YASIR.CSR_DOCUMENT_NUMBER on YASIR.CS_RESEARCH(DOCUMENT_NUMBER) LOCAL
              (PARTITION CS_RESEARCH_2007_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2007_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q2 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q2 TABLESPACE USERS)
         nologging parallel (degree 4); 
    Index created.
    
    create index YASIR.CSR_STATUS on YASIR.CS_RESEARCH(STATUS) LOCAL
              (PARTITION CS_RESEARCH_2007_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2007_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q2 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q2 TABLESPACE USERS)
         nologging parallel (degree 4);
    Index created.
     
    create unique index CSR_PRKEY_IND on YASIR.CS_RESEARCH(ORDER_NBR,ORDER_DETAIL_NBR) LOCAL
         (PARTITION CS_RESEARCH_2007_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2007_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q2 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q3 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2008_Q4 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q1 TABLESPACE USERS,
              PARTITION CS_RESEARCH_2009_Q2 TABLESPACE USERS)
         nologging parallel (degree 4);
    ERROR at line 1:
    ORA-14039: partitioning columns must form a subset of key columns of a UNIQUE
    index
    Thank you
    Yasser

    YasserRACDBA wrote:
    I want to create a unique partitioned index Local and use this primary key index.

    But my main question is if this create_date column will affect all sql queries that are not used in where clause?

    Yasser,

    your main question should not be about performance queries, but the consequence of adding the CREATE_DATE to the local unique index:

    1. you change the meaning of the primary key: adding the CREATE_DATE means that the unique character of ORDER_NBR, ORDER_DETAIL_NBR is only applied by CREATE_DATE. I guess that does not match the business experience that this primary key is supposed to enforce and defeated the original purpose of the uniqueness that is unique values of ORDER_NBR, ORDER_DETAIL_NBR across the table.

    2. If you want to use as a key in other tables you must add the CREATE_DATE to all child tables, because you need to refer to the primary key complete a relationship of key foreign primary key.

    So the only 'right' way to do this is to use a unique comprehensive index on ORDER_NBR, ORDER_DETAIL_NBR. Of course, this means you must rebuild whenever a partition maintenance is carried out which invalidates the overall index since you use 8i and you cannot use the UPDATE GLOBAL INDEXES clause.

    Kind regards
    Randolf

    Oracle related blog stuff:
    http://Oracle-Randolf.blogspot.com/

    SQLTools ++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676 /.
    http://sourceforge.NET/projects/SQLT-pp/

  • Adding a Partition to a range-Hash partitioned Table

    Hello

    I created the composite partition table (RANGE-HASH).  Oracle: 11.2, OS: HP UX

    CREATE TABLE 'XYZ '. "" TABLE_XYZ.

    (

    ----

    VARCHAR2 (54) "PROFILE" DEFAULT "000000000000000000' ENABLE NON-NULL"

    NUMBER (21.7) "CREATED_ON" DEFAULT 0 ENABLE NOT NULL,.

    ----

    )

    PARTITION BY RANGE

    (

    CREATED_ON

    )

    SUBPARTITION BY HASH

    (

    VIEW PROFILE

    )

    SUBPARTITION TEMPLATE

    (

    SUBPARTITION SP1 TABLESPACE PSAPISU,

    SUBPARTITION TABLESPACE PSAPISU SP2,

    SUBPARTITION SP3 TABLESPACE PSAPISU,

    SUBPARTITION SP4 TABLESPACE PSAPISU,

    SUBPARTITION SP5 TABLESPACE PSAPISU,

    SUBPARTITION SP6 TABLESPACE PSAPISU,

    SUBPARTITION SP7 TABLESPACE PSAPISU,

    SUBPARTITION SP8 TABLESPACE PSAPISU,

    SUBPARTITION SP9 TABLESPACE PSAPISU,

    SUBPARTITION SP10 TABLESPACE PSAPISU,

    SUBPARTITION SP11 TABLESPACE PSAPISU,

    SUBPARTITION SP12 TABLESPACE PSAPISU,

    SUBPARTITION SP13 TABLESPACE PSAPISU,

    SUBPARTITION SP14 TABLESPACE PSAPISU,

    SUBPARTITION SP15 TABLESPACE PSAPISU,

    SUBPARTITION SP16 TABLESPACE PSAPISU,

    SUBPARTITION SP17 TABLESPACE PSAPISU,

    SUBPARTITION SP18 TABLESPACE PSAPISU,

    SUBPARTITION SP19 TABLESPACE PSAPISU,

    SUBPARTITION SP20 TABLESPACE PSAPISU,

    SUBPARTITION SP21 TABLESPACE PSAPISU,

    SUBPARTITION SP22 TABLESPACE PSAPISU,

    SUBPARTITION SP23 TABLESPACE PSAPISU,

    SUBPARTITION SP24 TABLESPACE PSAPISU,

    SUBPARTITION SP25 TABLESPACE PSAPISU

    )

    (

    CREATED_ON_OCP01 PARTITION VALUES LESS THAN (20090101000000).

    CREATED_ON_OCP02 PARTITION VALUES LESS THAN (20090401000000).

    CREATED_ON_OCP03 PARTITION VALUES LESS THAN (20090701000000).

    CREATED_ON_OCP04 PARTITION VALUES LESS THAN (20091001000000).

    CREATED_ON_OCP05 PARTITION VALUES LESS THAN (20100101000000).

    CREATED_ON_OCP06 PARTITION VALUES LESS THAN (20100401000000).

    CREATED_ON_OCP07 PARTITION VALUES LESS THAN (20100701000000).

    CREATED_ON_OCP08 PARTITION VALUES LESS THAN (20101001000000).

    CREATED_ON_OCP09 PARTITION VALUES LESS THAN (20110101000000).

    CREATED_ON_OCP10 PARTITION VALUES LESS THAN (20110401000000).

    CREATED_ON_OCP11 PARTITION VALUES LESS THAN (20110701000000).

    CREATED_ON_OCP12 PARTITION VALUES LESS THAN (20111001000000).

    CREATED_ON_OCP13 PARTITION VALUES LESS THAN (20120101000000).

    CREATED_ON_OCP14 PARTITION VALUES LESS THAN (20120401000000).

    CREATED_ON_OCP15 PARTITION VALUES LESS THAN (20120701000000).

    CREATED_ON_OCP16 PARTITION VALUES LESS THAN (20121001000000).

    CREATED_ON_OCP17 PARTITION VALUES LESS THAN (20130101000000).

    CREATED_ON_OCP18 PARTITION VALUES LESS THAN (20130401000000).

    CREATED_ON_OCP19 PARTITION VALUES LESS THAN (20130701000000).

    CREATED_ON_OCP20 PARTITION VALUES LESS THAN (20131001000000).

    CREATED_ON_OCP21 PARTITION VALUES LESS THAN (20140101000000).

    CREATED_ON_OCP22 PARTITION VALUES LESS THAN (20140401000000).

    CREATED_ON_OCP23 PARTITION VALUES LESS THAN (20140701000000).

    CREATED_ON_OCP24 PARTITION VALUES LESS THAN (20141001000000).

    CREATED_ON_OCP25 PARTITION VALUES LESS THAN (20150101000000).

    PARTITION CREATED_ON_OCPMAX VALUES LESS THAN (MAXVALUE)

    )

    TABLESPACE "PSAPISU" ENABLE LINE MOVEMENT;

    Now, I am trying to add the new partition but becomes under errors:

    ALTER TABLE SAPISU. ADD PARTITION VALUES LESS THAN (20150401000000) CREATED_ON_OCP26 ZTMD_300_VERS_MANAGE

    *

    ERROR on line 1:

    ORA-14074: partition bound must gather greater than that of the last partition

    ERROR on line 1:

    ORA-14018: partition bound list contains too few elements

    I tried the SYNTAX mentioned by Oracle DOC, still getting error. Partitioned table and index management

    Could if it you please let me know, what is the exact syntax that I should follow?

    See you soon

    Sameer

    CREATED_ON_OCPMAX PARTITION SPLIT THAN (MAXVALUE)

    That don't mean to 'divide' the MAXVALUE partition.

    You cannot split a partition that contains the values of A, B, C, D, MAXVALUE to MAXVALUE; that makes no sense. ERROR on line 1:

    ORA-14080: partition cannot be split along the specified high limit

    That exception is to say you can't use MAXVALUE upper limit. You must use a value that is actually IN the partition.

    Go back and look at the definition of your partitions:

    CREATED_ON_OCP25 PARTITION VALUES LESS THAN (20150101000000).

    PARTITION CREATED_ON_OCPMAX VALUES LESS THAN (MAXVALUE)

    See which ends with: "VALUES LESS THAN (MAXVALUE)? MAXVALUE is not IN the score; This is the upper limit of the partition.

    Divide certain value > '20150101000000' and LESS THAN MAXVALUE;

    So if you try to create a partition for OCP26 you can use '20160101000000'.

    CREATE TABLE PART_TEST2)
    VARCHAR2 (54) DEFAULT PROFILE "000000000000000000' ENABLE NOT NULL,
    CREATED_ON NUMBER (21.7) DEFAULT 0 ENABLE NOT NULL
    )
    PARTITION BY RANGE (CREATED_ON)
    (
    CREATED_ON_OCP24 PARTITION VALUES LESS THAN (20141001000000).
    CREATED_ON_OCP25 PARTITION VALUES LESS THAN (20150101000000).
    PARTITION CREATED_ON_OCPMAX VALUES LESS THAN (MAXVALUE)
    )

    ALTER table split partition created_on_ocpmax part_test2
    to (20160101000000) into (partition, partition CREATED_ON_OCPMAX created_on_ocp26)

  • Possible to Exchange temporary table with composite range-hash partitioned table?

    Hello

    Using oracle 11.2.0.3

    We want to clean up the data in some of our existing partitioned table.

    Afetr updates check spped that is too slow for us.

    Current table is partitioned the inetrval compoiste range-hash table.  Also it is compressed - enabled for compression of basis as well

    An interval of 1 month and 1 partition by month and 4 secondary partitions in the partition of ecah.

    You want to create tenp table with the data of celan and exchange the data in this table in the 'dirty' uisng existing partitions partition exchnage.

    Is this possible?

    The plan is

    1) create temporary table containing data for 1 partition (1 month worth of data)

    (2) clean the data here

    (3) create new temporary table with these specific data which compressed and discovered partitioned with 4 secondary partitions

    (4) table 3 for swap partition dirty using partition excahnge.

    Thaks

    I think that this can be done with a combination of Exchange and Split partition partitions. Prior to Oracle 11 g, only way of redefining tables online was DBMS_REDEFINITION package. Now, you can redefine the use of partitions for Exchange & Split. Check

    http://www.Oracle-base.com/articles/Misc/partitioning-an-existing-table-using-Exchange-partition.php

    Maintenance of Partitions

    Kind regards

  • What is this mention of Partition type in the code "HASH Partition".

    Hi team,

    Regularly I add news were leaving and secondary partitions at the production table, based on the Date. For example daily data stored in a partition.
    Below is the code I use to add new partitions. I think that this partition called the range.

    CREATE TABLE 'owner '. "" TABLE_NAME ".
    ("COLUMN01' VARCHAR2 (4))
    'ACOLUMN02' VARCHAR2 (32) NOT NULL ACTIVATE.
    .
    .
    .

    DEFAULT USER_TABLES)
    TABLESPACE "Nom_tablespace".
    PARTITION BY RANGE ("Daily_TIME")
    (PARTITION 'ABC_2008_08_31' VALUES LESS THAN (TO_DATE (' 2008-08-31 23:59:59 ',')))
    SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))
    PCTFREE, PCTUSED, INITRANS 40 10 1 MAXTRANS 255
    STORAGE (INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645)
    ---------------------------------------------------------------------------------------------------------------------------------
    Now I found the new type of code to the new table created by the development team.
    The code is...

    CREATE TABLE 'owner '. "" TABLE_NAME ".
    ("COLUMN01' VARCHAR2 (4))
    'ACOLUMN02' VARCHAR2 (32) NOT NULL ACTIVATE.
    .
    .
    .

    DEFAULT USER_TABLES)
    TABLESPACE "Nom_tablespace".
    HASH PARTITION ("ACCOUNT_NUMBER")
    (PARTITION "PART_P01"
    TABLESPACE "tABLESPACE01."
    .
    .
    PARTITION "pART_P13."
    MOVEMENT of LINE ENABLE TABLESPACE "Tabelspace01");
    -----------------------------------------------------------------------------------------------------------------------------------------
    There is no code in the new code Table below...

    ((PARTITION «ABC_2008_08_31» LES VALEURS INFÉRIEURES QUE (TO_DATE (' 2008-08-31 23:59:59 ','))))
    SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))

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

    SO, I am unable to edit this table to add new left monthly sage.

    Please suggest me, how to record data date wise in this table. Also suggest me if not is the Partion LINE or not.

    If it is not possible to add new data to partition wise, I will inform the customer.

    Thank you and best regards,
    Vincent

    New table use hash partitioning, not range partitioning. You can refer to the Concepts:
    http://docs.Oracle.com/CD/E11882_01/server.112/e25789/schemaob.htm#CNCPT88864

    The key to the new partitioned table is account number, no date, so you cannot partition this table date-wise.

  • Identification of the ranges of partition

    Hello

    Using oracle 11.2.0.3 beach-partitioning interval.

    May idnentify score raised and when going to the table definition can see the periods they men to.

    However, it is possible through the data dictionary - for example start and end dates of th GE?

    Thank you

    SYS_P12389

    SYS_P12445

    SYS_P14105

    SYS_P59477

    SYS_P58117

    SYS_P45841

    SYS_P58101

    SYS_P59377

    SYS_P59497

    SYS_P63957

    SYS_P59537

    SYS_P59517

    SYS_P12394

    ALL_TAB_PARTITIONS query. HIGH_VALUE

  • Range-Hash verssu Hash Partitioning purely report performance

    Hello

    We evaluate different strategies and whereas hash and range-hash partitioning.

    While the range would give us additional cleaning options, is by far out up to priority for the reports to run as fast as possible.

    Central Oraxcle 11.2.0.3 in fact warehouse using large table estaimte will be 500 GB, surrogarte key star schema and the key to the substitution of the largest dimesnion partioned-hash with the surrogate key.

    According to your experience, the side purley perfomance queruy someone found the hash is significantly greater than parrtition by range of dates, then under hash partition.

    Queries do not use partition size.

    Greater hope of qwe benfit to win partitioning uses a parallel query + score-recognition of join between columns of hash-partitioedn (on the facts and the great dimesnion table.

    Thank you

    >
    We evaluate different strategies and whereas hash and range-hash partitioning.

    While the range would give us additional cleaning options, is by far out up to priority for the reports to run as fast as possible.

    Central Oraxcle 11.2.0.3 in fact warehouse using large table estaimte will be 500 GB, surrogarte key star schema and the key to the substitution of the largest dimesnion partioned-hash with the surrogate key.

    According to your experience, the side purley perfomance queruy someone found the hash is significantly greater than parrtition by range of dates, then under hash partition.

    Queries do not use partition size.

    Greater hope of qwe benfit to win partitioning uses a parallel query + score-recognition of join between columns of hash-partitioedn (on the facts and the great dimesnion table.
    >
    Objectives statements in this thread have some of the same problems and missing information that was your other thread.
    Re: Compress all the existing table ain dat

    So I would say the same thing, that I suggested it with minor changes.

    You give us your preferred solution instead of us giving that information about the PROBLEM you're trying to solve.

    You must first focus on the problem:

    1. define the problem - indicate the desired objectives
    2. identify the options and resources available to address the problem
    3. Select one or several small, these options for assessment earn and tests.
    4 testing of possible solutions
    5. Select and implement what you consider the "best" solution
    6. monitor the results
    >
    We evaluate different strategies and whereas hash and range-hash partitioning.
    >
    Why? 1. What is the problem that you are trying to address and what are your desired goals? Partitioning is a solution - what's the problem?
    >
    While the range would give us additional cleaning options, is by far out up to priority for the reports to run as fast as possible.
    >
    Great! Do you really need or even want options housekeeping? If so, which? Don't you bulk loads? Down periodically the data? How many times? Monthly? Every year?

    What is the relationship, in your analysis between partitioning and your reports running "as fast as possible? Give us some details. Why do you partitioning in general (range or range-hash in particular) will somehow make your reports run faster? What kind of reports? The amount of data they have access to produce? The amount of data returned in fact? How many times reports do work? How much of a problem reports are now? Generally meet their SLA? Or they RARELY meet their SLA?

    Partitioning is not a remedy of performance for badly written queries. Often the most effective way to improve the performance of reports is to resolve any issues the queries themselves may have or add appropriate indexes. You have exhausted these possibilities? Have you created and examined the execution plans for your key reports? That shows this analysis?
    >
    According to your experience, the side purley perfomance queruy someone found the hash is significantly greater than parrtition by range of dates, then under hash partition.
    >
    For a partitioned table, all data are stored in individual segments; a segment for each partition.

    For a partitioned table Sub all data are stored in the individual segments; a segment for each subpartition. There is NO data stored at the partition level.

    The type of partitioning (versus range-hash hash) and the type of data (partition versus subpartion) logic has no relevance in terms of performance.

    Performance of the queries are directly proportional the number of segments that should be available, the type of access (via the index or full scan) and the size of the segment (including the amount of data).

    The number of segments that should be available depends on the ability of the Oracle to prune partitions during the analysis statically or dynamically at run time.
    >
    Queries do not use partition size.
    >
    Partitioning then generally won't be valuable performance but only for maintenance operations.
    >
    Greater hope of qwe benfit to win partitioning uses a parallel query + score-recognition of join between columns of hash-partitioedn (on the facts and the great dimesnion table.
    >
    Please explain why you think that partitioning will provide this benefit.

    Oracle PARALLEL query very well on non-partitioned tables without using partition-wise joins. The latest version of Oracle also has a DBMS_PARALLEL_EXECUTE package that provides additional features for the realization of PARALLEL operations for many of the use cases more.

    Partitioning lends itself to a natural method of CHUNKing based on the scores/subparts, but that is not necessary to get the benefit of the PARALLEL use. The exception would be if provided partitioning segments that are on different axes or decrease disk IO conflicts.

    Another missing piece of key information are the number and the type of index that needs your reports. Will you be able to use mainly LOCAL partitioned indexes? Global index tend to destroy any maintenance performance that can be learned from partitioning.

  • Creating Local index on an existing partitioned table

    I have an existing table partitioned by list. I'm supposed to create local indexes on this subject.

    I'm using Oracle 11 g.

    I have an existing table partitioned by list. I'm supposed to create local indexes on this subject.

    I'm using Oracle 11 g.

    The skill the MOST IMPORTANT you can learn, is at present, how to find information.

    A search on the SIMPLE web for 'local index of oracle 11g' returns this as the FIRST link

    https://docs.Oracle.com/CD/B28359_01/server.111/b28286/statements_5011.htm

    The "local_partitioned_index" section has all the information you need and it has code example showing you how do it.

  • Local partitioned Global Index Index conversion online.

    Hi all
    I use the Release of oracle 10.2.0.4.0 version. As a solution to solve a performance problem, I intend to convert one of the partitioned local index in overall index. Here is the script that I made, but it will take a time out as because other applications may use the same index and will suffer from performance during the transition problem. My question is if I can reach the same onlline, only because the prod database is too busy down time? Please suggest.

    Script:

    drop index INDX_c1c2;

    create the IDX_c1c2 index on tab1 (c1, c2);

    930254 wrote:
    Hi all
    I use the Release of oracle 10.2.0.4.0 version. As a solution to solve a performance problem, I intend to convert one of the partitioned local index in overall index. Here is the script that I made, but it will take a time out as because other applications may use the same index and will suffer from performance during the transition problem. My question is if I can reach the same onlline, only because the prod database is too busy down time? Please suggest.

    Script:

    drop index INDX_c1c2;

    create the IDX_c1c2 index on tab1 (c1, c2);

    Your application will run without index during the time it takes to create. An alternative approach which avoids this would be:

    create index INDX_c1c2null on tab1(c1,c2,null);
    drop index INDX_c1c2;
    

    --
    John Watson
    Oracle Certified Master s/n
    http://skillbuilders.com

    Published by: JohnWatson on February 17, 2013 11:35
    Typo - forgot to change the name of the index

  • Local index: prefix or no prefix

    Hello

    I understand that in order to effectively use the local index, WHERE the sql clause must have the partition column
    as a predicate.

    in general, the partition column will not be a very selective specific column to the individual partition (even at the level of the table).

    in which case, with the local index prefix (where the partition column will be the leading index) will benefit?
    in my case, I partitioned tables list with 2 partitions, 1) 2) obsolete current.

    Thank you
    Charles

    Uwe Hesse wrote:

    Uwe,

    In short: If you manage to include the partition key of the table to your where condition, size of the partition to the level of the index for the index is possible. But maybe it's not always possible.

    But if the where clause does not contain the partition key, then you need to visit each partition of the index (and, possibly, table) anyway - and the index cannot be used for high precision range scans because it begins with a column that is not in the where clause (you might get lucky with skip scans However).

    There are four conditions to study once you have chosen a possible local index and think that you are supposed to decide whether or not the index should include:

    When the clause includes partition key, index is not prefixed (even to the extent where the partition key is not part of the index)
    Partition elimination can occur

    When the clause includes partition key, the index is prefixed
    Partition elimination can occur

    When the clause does not partition key, index is not prefixed (even to the extent where the partition key is not part of the index)
    Partition elimination cannot take place-, but the index could still be very accurate and very effective

    When the clause does not partition key, the index is prefixed
    Partition elimination cannot take place, and the index cannot be used by a jump search or complete analysis because it begins with a column that is not the case clause.

    The first pair of options shows that there is no inherent advantage to the addition of the prefix, the second pair shows that there is a potential threat.

    Since something like 8.1.6 the only factors including the key partitioning in all indexes them are that the standard ones - how does improve accuracy, where - in the index, the column order - is this is a most useful position. The concept of all prefix/non-prefixe has been buried years ago.

    Concerning
    Jonathan Lewis

  • index of output table and show what LOCAL indexes and who are

    I read the view of ALL_INDEXES here:
    http://www.Stanford.edu/dept/ITSS/docs/Oracle/10G/server.101/b10755/statviews_1061.htm
    But I still don't know how to query follows:

    1. display the name of the table, the index name and flag Y/N 'Is the local index' and a flag "is the overall index.

    The application should output table index and show what indexes are LOCAL and which are not.

    How to write this query?

    My original request:
    select table_name, Index_Name, Uniqueness, Partitioned, decode(Partitioned, 'NO', 'Global','Local') GlobalOrLocal from all_indexes
    where table_name = 'MyTABLE'
    2 I understand that global index for partitioned tables is a chunk of data referencing all the partitions table in the single room, but Local index is partitioned itself there are several parts each one or more partitions to reference table?

    Published by: CharlesRoos on October 6, 2010 12:45 AM

    CharlesRoos wrote:
    I read the view of ALL_INDEXES here:
    http://www.Stanford.edu/dept/ITSS/docs/Oracle/10G/server.101/b10755/statviews_1061.htm
    But I still don't know how to query follows:

    1. display the name of the table, the index name and flag Y/N 'Is the local index' and a flag "is the overall index.

    The application should output table index and show what indexes are LOCAL and which are not.

    How to write this query?

    My original request:

    select table_name, Index_Name, Uniqueness, Partitioned, decode(Partitioned, 'NO', 'Global','Local') GlobalOrLocal from all_indexes
    where table_name = 'MyTABLE'
    

    That seems Ok to me.

    2 I understand that for partitioned tables index global is a big piece of data referencing all the partitions table in the single room,

    Yes.

    but the Local index is partitioned itself there several pieces for each reference one or several partitions table?

    Almost right: each refers to score exactly one table. I.e. index partitioning is 'aligned' with the partitioning of the table.

  • Size of the partition and Index Local

    
    

    Hi all

    Database information: 11.2.0.3 64-bit Linux. It is a 3 RAC Cluster node.

    I recently partitioned a Parent and child tables as PARTITION of REFERENCE set. The parent table has been RANGE - partitioned. The first partition is on an integer column and the beaches are 0-1000, 10001-2000, 20001-30000 and so on. The secondary partition is on a date and it is partitioned for each quarter.

    I created a local index as follows (faullt2vehicle, offboard_load_date, record_type, Column_Y).

    Here's an example query I will carry out, where the date is covering 2 secondary partitions

    select  * from gets_tool_Fault t where fault2vehicle                                      = 12195
    and offboard_load_date                                 BETWEEN TO_DATE('2015-04-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
    AND TO_DATE('2015-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
    AND record_type                                        IN('FLT','STP','HC','EGU','EOAEQP','CEL')
    

    When I generate the plan explain below is the output

    Plan hash value: 2702285198
    
    --------------------------------------------------------------------------------------------------------------------------
    | Id  | Operation                           | Name               | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    --------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                    |                    |   386 | 76428 |   244   (0)| 00:00:03 |       |       |
    |   1 |  PARTITION RANGE SINGLE             |                    |   386 | 76428 |   244   (0)| 00:00:03 |     2 |     2 |
    |   2 |   PARTITION RANGE ITERATOR          |                    |   386 | 76428 |   244   (0)| 00:00:03 |     7 |     8 |
    |   3 |    TABLE ACCESS BY LOCAL INDEX ROWID| GETS_TOOL_FAULT    |   386 | 76428 |   244   (0)| 00:00:03 |    10 |    18 |
    |*  4 |     INDEX RANGE SCAN                | GETS_TOOL_FAULT_C7 |   386 |       |     7   (0)| 00:00:01 |    10 |    18 |
    --------------------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       4 - access("FAULT2VEHICLE"=12195 AND "OFFBOARD_LOAD_DATE">=TO_DATE(' 2015-04-01 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "OFFBOARD_LOAD_DATE"<=TO_DATE(' 2015-07-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
           filter("RECORD_TYPE"='CEL' OR "RECORD_TYPE"='EGU' OR "RECORD_TYPE"='EOAEQP' OR "RECORD_TYPE"='FLT' OR 
                  "RECORD_TYPE"='HC' OR "RECORD_TYPE"='STP')
    
    

    If you observe the optimizer is currently to identify the partition, and then the secondary partition, but what is confusing to me, this is why the restricted PREMISES index scan scans all secondary partitions for a given partition. The partition should be not even as a value from PARTITION RANGE ITERATOR of 7 and 8.

    Interestingly, when I provide a date range which is in single partition the pruning is happening correctly
    
    Plan hash value: 3457799067
    
    --------------------------------------------------------------------------------------------------------------------------
    | Id  | Operation                           | Name               | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    --------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                    |                    |     1 |   197 |     4   (0)| 00:00:01 |       |       |
    |   1 |  PARTITION RANGE SINGLE             |                    |     1 |   197 |     4   (0)| 00:00:01 |     2 |     2 |
    |   2 |   PARTITION RANGE SINGLE            |                    |     1 |   197 |     4   (0)| 00:00:01 |     7 |     7 |
    |*  3 |    TABLE ACCESS BY LOCAL INDEX ROWID| GETS_TOOL_FAULT    |     1 |   197 |     4   (0)| 00:00:01 |    16 |    16 |
    |*  4 |     INDEX RANGE SCAN                | GETS_TOOL_FAULT_N1 |     1 |       |     3   (0)| 00:00:01 |    16 |    16 |
    --------------------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       3 - filter("RECORD_TYPE"='CEL' OR "RECORD_TYPE"='EGU' OR "RECORD_TYPE"='EOAEQP' OR "RECORD_TYPE"='FLT' OR 
                  "RECORD_TYPE"='HC' OR "RECORD_TYPE"='STP')
       4 - access("FAULT2VEHICLE"=12195 AND "OFFBOARD_LOAD_DATE">=TO_DATE(' 2015-04-01 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "OFFBOARD_LOAD_DATE"<=TO_DATE(' 2015-06-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
    

    Thank you

    Jayadeep

    1. your index (faullt2vehicle, offboard_load_date, record_type, Column_Y), your query has a predicate based on a beach on the second column in this index, which means that the order of the index that must be examined is dictated by this predicate and each row in the range must be considered (filtered) to check the third predicate.  Basic guideline on the column in the index you are ordering for more effective use: If you have columns where predicates are always equal put these columns at the beginning of the index, the columns where predicates are usually based on a beach go towards the end. You seem to have been misled by reviews 'the prefix local index' stick to your two columns of partitioning at the front of your index - which should NOT be an automatic choice for the local index: see this note ( https://jonathanlewis.wordpress.com/2011/02/28/prefixed/ ) comments that follow and OTN article it is linked to.

    2 since you have two indexes that start the same way (this goes with the local prefix again) you made easy for the optimizer to choose the index (for you) is clearly evil. That's why behind the choice of the optimizer is probably another example of an issue that I spoke a few days ago: Re: Composite index + map selection N1 your index is probably greater than the index of C7, and the order of the entries in the C7 index probably makes the data much more dispersed that it really is (i.e. high clustering_factor).

    Concerning

    Jonathan Lewis

    PS (update):

    If there are many rows for each fault_id, then you must create an index from fault_id with 'compress 1' (or compress N if the first columns of the index N are repetitive).

    When dealing with range partitions do not forget that the high value partition is never reached in the document, do so based in the form "date_col BETWEEN date1 and date2", use the form "date_col > = dateX and date_col»< datey"="" or="" you="" may="" find="" that="" you="" are="" accessing="" one="" more="" partition="" than="" you="" hope="" to,="" and="" in="" some="" cases="" that="" may="" mean="" "multiple"="" (i.e.="" 2)="" when="" you="" were="" expecting="" 1="" (and="" the="" optimizer="" is="" much="" better="" at="" estimating="" costs="" for="" a="" single="">

  • Partitioned global index on partitioned table range, but the index partition does not work

    Hello:

    I was creating an index partitioned on table partitioned and partitioned index does not work.

    create table table_range)

    CUST_FIRST_NAME VARCHAR2 (20).

    CUST_GENDER CHAR (1),

    CUST_CITY VARCHAR2 (30),

    COUNTRY_ISO_CODE CHAR (2),

    COUNTRY_NAME VARCHAR2 (40),

    COUNTRY_SUBREGION VARCHAR2 (30),

    PROD_ID NUMBER NOT NULL,

    CUST_ID NUMBER NOT NULL,

    TIME_ID DATE NOT NULL,

    CHANNEL_ID NUMBER NOT NULL,

    PROMO_ID NUMBER OF NON-NULL,

    QUANTITY_SOLD NUMBER (10.2) NOT NULL,

    AMOUNT_SOLD NUMBER (10.2) NOT NULL

    )

    partition by (range (time_id)

    lower partition p1 values (u01 tablespace to_date('2001/01/01','YYYY/MM/DD')),

    lower partition (to_date('2002/01/01','YYYY/MM/DD')) tablespace u02 p2 values

    );

    create index ind_table_range on table2 (prod_id)

    () global partition range (prod_id)

    values less than (100) partition p1,

    lower partition p2 values (maxvalue)

    );

    SQL > select TABLE_NAME, SUBPARTITION_COUNT, HIGH_VALUE, nom_partition NUM_ROWS of user_tab_partitions;

    TABLE_NAME NOM_PARTITION SUBPARTITION_COUNT HIGH_VALUE NUM_ROWS

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

    TABLE_RANGE P2 0 TO_DATE (' 2002-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIA 259418)

    TABLE_RANGE P1 0 TO_DATE (' 2001-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIA 659425)

    SQL > select INDEX_NAME, NUM_ROWS nom_partition, HIGH_VALUE user_ind_partitions;

    INDEX_NAME NOM_PARTITION HIGH_VALUE NUM_ROWS

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

    P1 IND_TABLE_RANGE 100 479520

    IND_TABLE_RANGE P2 MAXVALUE 439323

    SQL > EXECUTE DBMS_STATS. GATHER_TABLE_STATS (USER, 'TABLE_RANGE');

    SQL > EXECUTE DBMS_STATS. GATHER_TABLE_STATS (USER, 'TABLE_RANGE', GRANULARITY = > 'PARTITION');

    SQL > EXECUTE DBMS_STATS. GATHER_INDEX_STATS (USER, 'IND_TABLE_RANGE');

    SQL > EXECUTE DBMS_STATS. GATHER_INDEX_STATS (USER, 'IND_TABLE_RANGE', GRANULARITY = > 'PARTITION');

    SQL > set autotrace traceonly

    SQL > alter shared_pool RAS system;

    SQL > changes the system built-in buffer_cache;

    SQL > select * from table_range

    where prod_id = 127;

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

    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time | Pstart. Pstop |

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

    |   0 | SELECT STATEMENT |             | 16469 |  1334K |  3579 (1) | 00:00:43 |       |       |

    |   1.  RANGE OF PARTITION ALL THE |             | 16469 |  1334K |  3579 (1) | 00:00:43 |     1.     2.

    |*  2 |   TABLE ACCESS FULL | TABLE_RANGE | 16469 |  1334K |  3579 (1) | 00:00:43 |     1.     2.

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

    Information of predicates (identified by the operation identity card):

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

    2 - filter ("PROD_ID" = 127)

    Statistics

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

    320 recursive calls

    2 db block Gets

    13352 consistent gets

    11820 physical reads

    0 redo size

    855198 bytes sent via SQL * Net to client

    12135 bytes received via SQL * Net from client

    1067 SQL * Net back and forth to and from the client

    61 sorts (memory)

    0 sorts (disk)

    15984 rows processed

    Once the sentence you say ' does not ' and then you go to paste plans that seem to show that it "works".

    What gives?

    In fact, if you look at the plans - think Oracle you have 16 k rows in the table and he'll be back k 12 rows for your select statement. In this case, Oracle is picking up the right plan - full scan 16 ranks of k is a lot less work to digitize the index lines k 12 followed by the research of rank k 12 rowid.

  • Remove the local index partitions

    Hello

    How can I provide clues the only from a few partitions in oracle 10.2.0.4?

    Index partitions a fall

    You cannot explicitly delete a partition of a local index. Instead, the local index partitions are removed only when you delete a partition of the underlying table.

    http://docs.Oracle.com/CD/E18283_01/server.112/e16541/part_admin002.htm#i1007542

Maybe you are looking for

  • Incompatible error - audio missing file new file

    I don't know how it happened as my media has been stored in the library file, but somehow some files have not related.  They don't relink as it says the new file his tent to re-edit the link isn't the audio file as the original.  I don't want to have

  • Variance of 20 samples at a time...

    Hello I asked a similar question before, but now the functional requirements have changed so I need to change the vi... This vi must calculate the gap data in 'chunks' of 20 points (or whatever the user wants), if the gap is greater than the threshol

  • instalation of update "Windows Live essential KB2434419"

    I tried several times to install the "Windows Live essential KB2434419" update and it fails. Help!

  • I can't be able to find/doiwnload software check the battery.

    I go to my Advisor of PD to check my status of the battery (G60-120us Notebook) and it says unknown state, download the HP battery check now.   If I click on it it brings me to the download and support page, but there is no HP Battery Check download

  • Is it possible to build a vpn tunnel to the DMZ on a pix 515 interface?

    I would like to know if it is possible to have a vpn tunnel ending on a DMZ interface rather then inside interface of a pix 3-way. All the examples of configuration, I found route traffic from the VPN client somewhere on the internet on the inside in