Oracle Excessive Partition table

People,
We have a server Oracle 10 g. My question concerns an Oracle table that until now has 183 scores. Whoever created this table, put in place to add a new partition at the end of each month. I checked and verified in each partition, there are anywhere between 20 000 and 40 000 lines. Each line consists of 218 bytes. My manager is to get rid of these partitions. He just wants me to check that let down the barriers would not impact the response time that much. I can see Adding a partition of all ranks from 500 000 to 1 000 000, but having a partition for 20, 000 to 40 000 lines seems excessive to me. At the pace partitions are added to this table, in 5 years, it might have more than 600 scores. Finally, like anything else in life, there must be some back of draw for Oracle table partitioning. I saw a lot of 'Pros' on the Web but not 'jerks '.

I would appreciate your opinion on it.

Seyed

I agree with your idea that the partitioning for 40K lines (with the information provided) seems excessive. Do the calculation lines 40 K * 218 partitions should be out only about 8 million, I would not immediately consider a candidate for partitioning.

Partitioning of the benefits that you are aware of; most of them involves the use of large data sets. Pruning is a huge advantage by excluding the vast amounts of data that are unwanted review of the join.

There are disadvantages too, for the most part buried under the volume of data partitions work usually with. There is a performance slightly beat on standard queries against a partitioned table while SQL decides which partitions to hit. You can observe this by querying the table, then by a specific partition trying only to get data for a specific partition.

There is also the question of how many partitions you want to keep track of? You ask the right questions.

Its possible that the partitions help performance; the only way to be sure is to create a table that is not partitioned using DEC, indexes, and constraints such as the partitioned table and run performance tests.

Tags: Database

Similar Questions

  • Partitioning table in oracle 10g - how to add

    Hello friends,

    I hope you are all fine and great.

    In fact - I have a small question on oracle 10g partitioning of tables...


    I have a table with the partition below...

    CREATE TABLE X_ACC_ASSETS_GPC_AGG
    (
    X_ACC_ASSETS_GPC_AGG_RK NUMBER (10) NOT NULL,
    X_AS_OF_DT DATE NOT NULL,
    ACCOUNT_RK NUMBER (10) NOT NULL,
    X_UNIV_ACCOUNT_ID NUMBER (10),
    ACCOUNT_ID VARCHAR2 (10 BYTE),
    X_ASSET_TYPE_CD VARCHAR2 (6 BYTE),
    X_AUC_AMT NUMBER (18.5).
    X_FIRM_AMT NUMBER (18.5).
    X_ADJ_SRCE_AMT NUMBER (18.5).
    DATE OF PROCESSED_DTTM
    ) PARTITION BY RANGE (X_AS_OF_DT)
    (
    P200712 PARTITION VALUES LESS THAN (TO_DATE (' 2008-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))
    NOLOGGING
    NOCOMPRESS
    TABLESPACE KAW_DATA
    PCTFREE 10
    INITRANS 1
    MAXTRANS 255
    STORAGE)
    64K INITIALS
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    DEFAULT USER_TABLES
    ),
    .
    .
    .
    .


    P201112 PARTITION
    NOLOGGING
    NOCOMPRESS
    TABLESPACE KAW_DATA
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE)
    64K INITIALS
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    DEFAULT USER_TABLES
    ),
    PARTITION PMAX
    NOLOGGING
    NOCOMPRESS
    TABLESPACE KAW_DATA
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE)
    64K INITIALS
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    DEFAULT USER_TABLES
    )
    ) NOPARALLEL;







    My question is:
    (1) how to add a partition to say P201201...
    Since I already said PARTITION PMAX can I still add partition?
    (2) can I add a partition even if the table contains data?


    ==========================
    I tried to add the partition... say

    ALTER TABLE X_ACC ADD PARTITION P201201 THE VALUES BELOW TO
    (TO_DATE (' 2012-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))
    NOLOGGING
    NOCOMPRESS
    TABLESPACE KAW_DATA
    PCTFREE 10
    INITRANS 1
    MAXTRANS 255
    STORAGE)
    64K INITIALS
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    DEFAULT USER_TABLES
    )



    but the error...
    "linked partition must gather greater than that of the last partition.



    Thank you/kumar

    Yes. With the help of DBMS_REDEFENITION, you can partition an existing table. Visit this link on how to do it.

    http://www.Oracle-base.com/articles/Misc/PartitioningAnExistingTable.php

  • Partitioning of an existing partitioned table

    Dear Experts,

    I have a problem with redefinition of partitioning of an existing partitioned table. I have a parent table separated by a virtual column by range:

    CREATE THE PARENT TABLE

    (

    PARENT_ID NUMBER NOT NULL,

    INSERT_TIMESTAMP TIMESTAMP (6) NOT NULL,

    CLOB PARENT_DATA NOT NULL,

    BATCH NUMBER,

    DATE of INSERT_DATE generated always as (TRUNC("INSERT_TIMESTAMP"))

    )

    LOB (PARENT_DATA) AS STORE NAVIGATION (ACTIVATE ONLINE STORAGE)

    PARTITION BY RANGE (INSERT_DATE)

    (

    P2015_11 PARTITION VALUES LESS THAN (TO_DATE (' 2015-12-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))

    CRAFT STORE (PARENT_DATA) AS (SECUREFILE

    ACTIVATE THE ONLINE STORAGE),

    P2015_12 PARTITION VALUES LESS THAN (TO_DATE (' 2016-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))

    CRAFT STORE (PARENT_DATA) AS (SECUREFILE

    ACTIVATE THE ONLINE STORAGE),

    P2016_01 PARTITION VALUES LESS THAN (TO_DATE (' 2016-02-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIAN '))

    CRAFT STORE (PARENT_DATA) AS (SECUREFILE

    ALLOW ONLINE STORAGE,

    PARTITION P_DEFAULT VALUES LESS THAN (MAXVALUE)

    CRAFT STORE (PARENT_DATA) AS (SECUREFILE

    ALLOW ONLINE STORAGE

    ))

    );

    and a child table partitioned by reference:

    CREATE ACCOUNTS FROM THE TABLE. CHILD

    (

    PARENT_ID NUMBER NOT NULL,

    DATAACC DATAACC_TBL,

    CREATION_DATE DATE,

    CONSTRAINT PARENT_D_E_PRT_FK

    FOREIGN KEY (PARENT_ID)

    (PARENT_ID) REFERENCES PARENT

    ENABLE VALIDATE

    )

    NESTED TABLE, STORE DATAACC AS DATAACC_NT

    PARTITION OF REFERENCE (PARENT_D_E_PRT_FK)

    (

    P2015_11 PARTITION,

    P2015_12 PARTITION,

    P2016_01 PARTITION,

    PARTITION P_DEFAULT);

    However, now in Oracle 12 c I am able to use the reference interval partitioning. How can I redefine the partitioning of the parent table so that there can be scope-level?

    Thank you for your help.

    Best regards, Atanas.

    To change range partition to partition interval, the table should not have MAXVALUE partition... Follow the steps below to convert to partition interval

    (1) check if all data of the MAXVALUE partition (p_default) using query below

    SELECT COUNT (*) FROM parent PARTITION (p_default).

    (2) if there is no trace in the p_default partition, drop the help below

    ALTER TABLE DROP PARTITION parent p_default;

    (3) use the clause SET INTERVAL to convert the range partition partition interval as below

    ALTER TABLE parent SET INTERVAL (NUMTOYMINTERVAL(1,'MONTH'));

    I guess, you have the range partition up to until, so there should not be any folder in p_default partition.

  • Is it possible to copy a table partitioned to another different partitioned table statistics?

    Hello

    Using oracle 11.2.0.3 and study the possibility to copy his stats of a hash range partitioned table to another partitioned table range-hash.

    New table is based on the old table with the same structure, about right. of lines.

    estimate_percent auto not practical sample - size took 10 hours in tests and careful to just down for example 1% percent estimate.

    Is it possible to simply copy the stats on our old table

    Thank you

    Mismatch / typo in statid?

    statid-online "CURRENT_STATS."

    statid => ' CURRENT_STATUS

  • NULL values in partition Table of Partition key

    Hi all

    I'm using Oracle 11.2.0.3.

    I can add a null value on partition of Partition table key.

    If so, how?

    Kind regards.

    • You cannot specify NULL in the VALUES clause.

    Referring to clauses PARTITION you set - not the data that you insert.

    If you cannot define a range partition that uses the VALUES LESS THAN and use null to this division. But you CAN use NULL values in the VALUES of integration clause.

    DROP TABLE mytable;

    CREATE TABLE MyTable

    (

    CREATION_DATE DATE,

    Identification number

    )

    PARTITION BY RANGE (CREATION_DATE)

    (

    PARTITION prior_to_2016 VALUES LESS THAN (TO_DATE ('2016-01-01', 'YYYY-MM-DD'));

    LESS THAN PARTITION of VALUES undesirable (MAXVALUE)

    )

    Insert into myTable values (null, null)

    You can use a VALUES clause to insert NULL values - this line will go into the MAXVALUE partition.

  • Partition table with null column

    Friends,

    DB: 11 GR 2

    OS: Linux

    I'm conversion from table to table of partition and try to understand the to do.

    Table has a date column that can have null values and I am partitioning table to date.

    I creates interval partitioning and also want to use MAXVALUE so that all dates go null.

    Somehow below syntax does not work, tried to read the manual, but not able to set below.

    CREATE TABLE EMP

    (DATE_ENTERED DATE default sysdate,

    ID NUMBER (10) NULL NOT ACTIVATE.

    ACTIVATE THE FIRST NAME VARCHAR2 (200) NOT NULL,

    TURN ON LAS_NAME VARHCAR2 (200) NOT NULL

    CONSTRAINT PK_ID PRIMARY KEY (ID)

    )

    PARTITION BY RANGE (DATE_ENTERED)

    INTERVAL (NUMTODSINTERVAL(1,'day'))

    (

    partition values P_NOT_USE less (to_date ('2015-01-01', 'yyyy-mm-dd'));

    values p_max_value score less than (MAXVALUE)

    );

    Receive the error message:

    ORA-14761 maxvalue partition cannot be specified for interval partitioned objects.

    Advice to solve this problem?

    I think the problem is using the function of the interval but then how can we partition a day?

    Also is there any way/script available to find all the permissions/privileges table before a fall?

    Manual: maintenance of Partitions

    The error is pretty clear to me. You can't have a partition of maxvalue for objects partitioned interval, only beach.

    There is no logical sense to have a for range partitioning's maxvalue partition, because the whole point is to have the Oracle to create new partitions automatically when you insert something above the transition point.

    SQL> desc dba_tab_privs
    Name                                      Null?    Type
    ----------------------------------------- -------- --------------
    GRANTEE                                            VARCHAR2(128)
    OWNER                                              VARCHAR2(128)
    TABLE_NAME                                        VARCHAR2(128)
    GRANTOR                                            VARCHAR2(128)
    PRIVILEGE                                          VARCHAR2(40)
    GRANTABLE                                          VARCHAR2(3)
    HIERARCHY                                          VARCHAR2(3)
    COMMON                                            VARCHAR2(3)
    TYPE                                              VARCHAR2(24)
    
  • Reuse of blocks released upward in partitioned table

    Hello world

    I have a database creates a new partition and after a certain retention counter old partitions are deleted. This is done every day. We had some problem sometime before, so we disabled the partition drop script until it is revised for the partitions are not deleted for now. But we're going to delete all the files in the old partitions on a daily basis so that later, when we allow rear drop partition script it will not push the system.

    Now the problem is though that we delete the lines of the old partitions that continues to increase the size of the storage space, which means that it does not use the freed block. Please correct me if I'm wrong here, to my knowledge when the records in a table is removed the blocks going to the freelist for subsequent data inserts.

    The method above does not apply to the partitioned table is? If the space is released only if the partition is deleted? Thank you for you're your time and your answers. Very much appreciated.

    Database: Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0

    OS: Oracle Solaris 10 SPARC 64 bit

    I have a database creates a new partition and after a certain retention counter old partitions are deleted. This is done every day. We had some problem sometime before, so we disabled the partition drop script until it is revised for the partitions are not deleted for now. But we're going to delete all the files in the old partitions on a daily basis so that later, when we allow rear drop partition script it will not push the system.

    If possible, you should use TRUNCATE so that high tide is reset. It will be much faster to delete lines.

    What PROBLEM you encounter who pushed you to 'disable' the drop?

    Now the problem is though that we delete the lines of the old partitions that continues to increase the size of the storage space, which means that it does not use the freed block. Please correct me if I'm wrong here, to my knowledge when the records in a table is removed the blocks going to the freelist for subsequent data inserts.

    Correct - but only "freelist" will NOT be used for removable direct-path.

    My guess is that your new data every day are INSERTED in BULK. If, then Oracle just formats new blocks and fills them directly and does not use the free list.

    Do you use inserts of direct-path for new data?

  • Partitioned table of LOB - àen SECUREFILE?

    Dear administrators,

    My version of DB - 11.1.0.7

    I need to convert storage LOB in BASIC NAVIGATION (and also to enable compression Adv LOB) on a partitioned table (Hash, 64 partitions). Table of the LOB chunk size size - 8 GB, segment - 1.2 to

    I am familiar with dbms_redef for these conversions on non partitioned tables. I know too, redefine a LOB table partitions. But is there a way to achieve BASIC SECUREFILE conversion on a table partitioned using the DBMS_REDEF?

    I have not found much info on this on oracle docs or other sources on the internet. Nobody don't know or don't know of this process? Thanks for your help.

    Post edited by: DBA112

    orclz > create table lobtab store (c2 c1 and number, clob) lob (c2) as partition by hash (c1) partitions 4 basicfile;

    Table created.

    orclz > create table inttab store (c2 c1 and number, clob) lob (c2) as securefile partition by hash (c1) partitions 4;

    Table created.

    orclz > alter table lobtab add constraint primary key lpk (c1);

    Modified table.

    orclz > insert into lobtab values(1,'abc');

    1 line of creation.

    orclz > dbms_redefinition.start_redef_table (user, 'lobtab', 'inttab') exec.

    PL/SQL procedure successfully completed.

    orclz > dbms_redefinition.finish_redef_table (user, 'lobtab', 'inttab') exec.

    PL/SQL procedure successfully completed.

    orclz >

  • CTXCAT index on partitioned tables

    Hi all

    I use an oracle 11.2 database and try to use the index for a sample application oracle CTXCAT.

    I saw that oracle reference documentation "the CTXCAT index can't stand table and index partitioning, not...» "in http://docs.oracle.com/cd/B28359_01/text.111/b28303/ind.htm#BEIIEAFD

    But I was able to create a CTXCAT index on a partitioned table query to use it successfully.

    So can someone tell me exactly it meaning in the documentation of oracle developer "CTXCAT index does not support index and table partitioning?

    Thanks in advance,

    Mor.

    This simply means that you cannot create a LOCAL partitioned index on a table partitioned using the CTXCAT indextype. There is not probably the creation of a global index (ie. covering all partitions) on a partitioned table.

    The wording could be clearer.

  • Delete the data in partitioned tables

    Hello

    Oracle 11.2.0.3.0 version, running on Linux Enterprise.

    I need to remove all the data from two tables (several 100 million lines each) that are partitioned.

    (1) table 1 is a partition table have varied to a DATE column

    (2) Table2 is a partition of reference table; partitioning is referenced on a relationship of foreign key to Table1 (column: key Table1.Primary)

    As I have no need for data, but want to keep the structure of the table, I would ideally like to delete partitions at the same time that the deletion of the data, so that the 2 tables partitioned and empty.

    Additionally, Table1 has some partitioned index I would be rebuilt as an index unpartitioned (given that Table1 will be empty).

    I thought I would start by removing all partitions of Table1 (via "ALTER TABLE DROP PARTITION nom_partition Table1"), but when the script came to the last partition, I got this error message:

    ORA-14083: cannot delete the only one partition of a partitioned table

    ORA-06512: at "SYS." DROP_PARTITIONS', line 46

    If someone could advise as to the best approach to what I want to achieve with regard to the two tables? Two tables down and recreate them then without partitions would be the easiest way?

    Thanks in advance for any guidance.

    If someone could advise as to the best approach to what I want to achieve with regard to the two tables? Two tables down and recreate them then without partitions would be the easiest way?

    Yes - delete the tables and re-create them.

    As says the exception that you cannot delete the last partition. A table is partitioned either or it is not.

    There was no interest at all to use DBMS_REDEFINITION to redefine tables because you do not want the data anyway.

  • Local primary key on reference partitioned Table

    Oracle running on Red Hat Linux Rel6 11.2.0.3.

    I'm on a closed network, so the following must be typed manually.

    I have a table of documents which is essentially the following:

    (entire annual <-primary key)

    whole Source_ID,

    load_dt date,

    date of doc_dt,

    doc_info clob,

    ...)

    which is partitioned on column source_id.

    I created a partitioned table of reference as follows:

    create table doc_entities_prt)

    whole doc_entity_id

    all annual,

    whole entity_id,

    forced doc_ent_fk (annual) references to documents (annual)

    tablespace...

    allow the movement of the line

    benchmark score (doc_ent_fk);

    The annual column in the child table is not unique.  The doc_entity_id column is unique.  I want to set the primary key on doc_entities_prt as a local index on the doc_entity_id column.  I was not able to find the proper syntax to get there, and now I'm wondering if this is even possible? Any ideas appreciated.

    Oops, I missed part that you want to base the PK of this index. No, it is not possible and has nothing to do with the partitoning reference. A unique index can be partitioned only if it includes a partitioning column. You can create a non-unique without partitioning column partitioned index, but then you can't create PK supported by such an index for the same reason - oracle would not be able to verify uniquenes based on this index partition and controls of the cross-partition are not supported:

    SQL > create table documents)
    2 whole annual,
    3 whole source_id,
    load_dt date 4.
    date of doc_dt 5.
    6 doc_info clob
    7                        )
    8 partition by range (source_id)
    9      (
    10 partition p1 values less than (10),
    11 partition p2 values less than (100)
    12)
    13.

    Table created.

    SQL > create index unique documents_pk
    2 on documents (annual)
    (3) local
    partition 4 p1,
    5 partition p2
    6         )
    7.
    on documents (annual)
    *
    ERROR on line 2:
    ORA-14039: partitioning columns must be a subset of the columns of a unique key
    index

    SQL > create index documents_pk
    2 on documents (annual)
    (3) local
    partition 4 p1,
    5 partition p2
    6         )
    7.

    The index is created.

    SQL > alter table documents
    2 Add the constraint documents_pk
    3 key (annual) elementary school
    4 using index documents_pk
    5.
    change the documents table
    *
    ERROR on line 1:
    ORA-14196: specified Index cannot be used to apply the constraint.

    SQL >

    SY.

  • How to create a partitioned table

    Apex 4.2

    Oracle 11g

    There is a large table, which have 160000 rows, I would like to create a partitioned table to improve performance, but could not find a way to create a.

    Concerning

    Hello

    I don't see how your question relates to APEX, unless you mean how to make APEX builder object Explorer.

    Answer is simple, you can do it from the object browser.

    You should write a ddl script to create the partitioned table, and run it from sql commands.

    Kind regards

    Jari

  • partition table

    When we need to use the partition table?

    Partitioning defined

    The concept of divide and conquer has been around since the time of Sun Tzu (500 BC). Recognizing the wisdom of this concept, Oracle applied to management of large tables and indexes. Oracle has continued to evolve and refine its capabilities of partitioning since its first implementation of the Oracle 8 range partitioning. Oracle 8i and 9i, Oracle has continued to add features and new methods of partitioning. The current version of Oracle 9i Release 2 continues this tradition by adding new features to the list partitioning and partitioning method new range-list.

    When the partition

    There are two main reasons to use partitioning in an environment of VLDB (very large database). These reasons are related to improving the management and performance.

    Partitioning offers:

    • Management at the level of individual partition for data loads, creating indexes and reconstruction, and backup/restore. This may cause more quickly down, because only actively managed individual partitions are not available.
    • Performance of the queries increased by selecting only the relevant partitions. This process of weeding out the partitions that do not contain the data required by the application via a technique called the size of the partition.

    Use the partitioning:

    • When a table reaches a size "large". Large being defined according to your environment. Greater than 2 GB should always be considered for partitioning of tables.
    • What performance benefits outweigh the extra management issues related to partitioning.
    • When the archive data is on a calendar and repetitive. For example, data warehouses are usually given for a certain period of time (rolling window). Old data is then output to archive.
  • Size of partition on interval range partitioned Table happens when SYSDATE is used in a Where Clause

    We have tables interval range partitioned on a DATE, with a partition for each day column - very standard and straight out of doc Oracle.

    A 3rd party application queries the tables to find the number of rows based on the date range that is located on the column used for the partition key.

    This application uses the date range specified from the current date - i.e. for last two days would be «...» StartDate > SYSDATE-2 "- but the partition size is irrelevant and the explain command plan shows that each partition is included."

    In presenting the request uses the date in a variable partition size location and query table is obviously much better.

    DB is 11.2.0.3 on RHEL6, and default settings - i.e. nothing that could influence the behavior of the optimizer to something unusual.

    I can't work on why this would be the case. It is very easy to reproduce with cases of simple test below.

    I would be very interested to hear any views on why it's that way and if anything can be done to allow the size of the partition to work with a query including SYSDATE because it would be difficult to get the application code has changed.

    In addition to make a case to change the code, I need an explanation of why query using SYSDATE is not advisable and I know this information.

    (1) create a simple partitioned table

    CREATETABLE part_test
       (id                      NUMBER NOT NULL,
        starttime               DATE NOT NULL,
        CONSTRAINT pk_part_test PRIMARY KEY (id)) 
    PARTITION BY RANGE (starttime) INTERVAL (NUMTODSINTERVAL(1,'day')) (PARTITION p0 VALUES LESS THAN (TO_DATE('01-01-2013','DD-MM-YYYY')));
    

    (2) fill in the rows of the table 1 million distributed among 10 partitions

    BEGIN
        FOR i IN 1..1000000
        LOOP
            INSERT INTO part_test (id, starttime) VALUES (i, SYSDATE - DBMS_RANDOM.value(low => 1, high => 10));
        END LOOP;
    END;
    /
    EXEC dbms_stats.gather_table_stats('SUPER_CONF','PART_TEST');
    

    (3) to query the Table of data from the last 2 days using SYSDATE in paragraph

    EXPLAIN PLAN FOR 
    SELECT  count(*) 
    FROM    part_test
    WHERE   starttime >= SYSDATE - 2;
    

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

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

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

    |   0 | SELECT STATEMENT |           |     1.     3 ×  7895 (1) | 00:00:01 |       |       |

    |   1.  GLOBAL TRI |           |     1.     3 ×            |          |       |       |

    |   2.   RANGE OF PARTITION ITERATOR.           |   111K |   867K |  7895 (1) | 00:00:01 |   KEY | 1048575.

    |*  3 |    TABLE ACCESS FULL | PART_TEST |   111K |   867K |  7895 (1) | 00:00:01 |   KEY | 1048575.

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

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

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

    3 - filter("STARTTIME">=SYSDATE@!-2)

    (4) now do the same query, but with SYSDATE - 2 presented as a literal value.

    This query returns the same response but very different cost.

    EXPLAIN PLAN FOR
    SELECT count(*) 
    FROM part_test
    WHERE starttime >= (to_date('23122013:0950','DDMMYYYY:HH24MI'))-2;
    

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

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

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

    |   0 | SELECT STATEMENT |           |     1.     8.   131 (0) | 00:00:01 |       |       |

    |   1.  GLOBAL TRI |           |     1.     8.            |          |       |       |

    |   2.   RANGE OF PARTITION ITERATOR.           |   111K |   867K |   131 (0) | 00:00:01 |   356 . 1048575.

    |*  3 |    TABLE ACCESS FULL | PART_TEST |   111K |   867K |   131 (0) | 00:00:01 |   356 | 1048575.

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

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

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

    3 filter ("STARTTIME" > = TO_DATE (' 2013-12-21 09:50 ',' syyyy-mm-dd hh24:mi:ss'))))

    Thank you in anticipation

    Jim

    sysdate is not constant and its value may change from time optimization of execution; but the optimizer can deduce that he will be a known running value and then produce a plan that will make the size of partition running.  This is the meaning of 'KEY' in the column pstart – the partition of departure will be known at run time and the size of partition will take place in order to eliminate the previous partitions.

    Concerning

    Jonathan Lewis

  • 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)

Maybe you are looking for

  • Video player Help:

    I was wondering... When you watch videos is there a setting so that you can get back where you left when you watch a video? Please explain how I really want to use the video player such as my Ipod where I can start back here where I left so I don't o

  • HP Pavilion 1201tx g6: drivers Bluetooth

    I need the drivers for my bluetooth device Hardware ID: USB\VID_0CF3 & PID_311D & REV_0001USB\VID_0CF3 & PID_311D BTH\MS_BTHBRB\7 & 2755415C & 0 & 1 Thanks in advance.

  • SeparaterField in ApplicationMenuItem?

    Hello everyone, How to add the separatorField in ApplicationMenuItem? Thanks in advance.

  • Text color TEXT and selections of police

    Hello world. I'm new to the word of app development. I was hoping someone could lead me in the right direction. I want to create an application that allows the color of the sms text body and the police to be customizable. I saw a few apps out there,

  • Data transfer of blackBerry Smartphones old BB BB-new

    I bought a new BB Torch 9810 to replace a lost BB Torch 9810.  I backed up the old BB.  Do to restore data to the new BB torch? How?  I use the desktop blackberrry Manager on a Mac. Thank you