DBAsupport.com Forums - Powered by vBulletin
Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: Replicating List Partitioning on Oracle 8i

  1. #1
    Join Date
    Feb 2006
    Posts
    6

    Replicating List Partitioning on Oracle 8i

    Hello

    We have a large table which needs to be partitioned on a 3 digit product code.

    However, from the research I have been doing I understand that 8i cannot do this and my only options are range and hash partitioning.

    We are trying to ensure that we have equal size partitions for these product codes bearing in mind that some product codes produce huge volumes of data and others very minimal so we are looking at something like

    partition 1 (most frequently used) 324, 307
    partition 2 308,315,386
    partition 3 316,399,374,392

    etc

    Am I going to be able to do this at all ?

    Many Thanks

  2. #2
    Join Date
    Jan 2001
    Posts
    2,828
    Hi
    It would be helpful if you can post tabel structures and some relevant info.to eanble us to provide valuable inputs

    regards
    Hrishy

  3. #3
    Join Date
    Mar 2002
    Posts
    534
    what do you want to improve by list partitioning?
    what kind of application is it (oltp/dwh)?
    how big is your table?
    how do you acces to the data in this table?
    do you know that 8i is not supported any more?
    why do you want to have "equal size partitions"?

  4. #4
    Join Date
    Feb 2006
    Posts
    6
    There are 3 tables I want to partition currently contain the following
    ASSIN_VERS 147 million rows
    ASSIN_CONTR 269 million rows
    ASSIN_EVT_ACTUARIAL 326 million rows

    Each table structure has about fields of which the field I want to partition on is

    EVA_CD_PROD_CIAL VARCHAR2(5),

    Currently this field is not indexed.

    what do you want to improve by list partitioning?
    We are currently using Datastage to perform Bulk loads on these tables and we are trying to improve access times to the tables and reduce contention and increase parallel access as many applications access these tables.

    what kind of application is it (oltp/dwh)?
    Dwh

    how big is your table?
    see sizes above.
    Current Tablespace definition for ASSIN_VERS
    TABLESPACE DWH00DATA1024M
    PCTUSED 40
    PCTFREE 10
    INITRANS 1
    MAXTRANS 255
    STORAGE (
    INITIAL 1024M
    NEXT 1024M
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 1
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    )
    LOGGING
    NOCACHE
    NOPARALLEL;

    how do you access the data in this table?
    The data is created by Datastage and loaded using shell scripts calling bulk loads.
    The data is read by downstream applications, Business objects and other Datastage jobs

    do you know that 8i is not supported any more?
    It is not that 8i is not supported just that list partitioning doesnt exist in 8i. It was added in 9i

    why do you want to have "equal size partitions"?
    It is not so much equal partitions but we have several product lines that can be stored in 1 partition and some contracts that take up a whole partition.

  5. #5
    Join Date
    Mar 2002
    Posts
    534
    The easiest way to do that would be to create a range partitioned table with one range partition for each key.

    The best solution would be to migrate to 10gr2 because it is a supported version and because, compared to 8i, it contains a lot of new features which are really useful for a DWH.

  6. #6
    Join Date
    Feb 2006
    Posts
    6
    The easiest way to do that would be to create a range partitioned table with one range partition for each key.

    There are almost 200 product codes. I assume have to add a new partition every time we added a product code ?

    How would this look syntactically. Can you give me an example ?

    The best solution would be to migrate to 10gr2 because it is a supported version and because, compared to 8i, it contains a lot of new features which are really useful for a DWH.

    Unfortunately migrating to future version of Oracle is not an option at this point. They have a huge Oracle installation and the regression testing would take years. I believe they have uncovered some big issues as well.

  7. #7
    Join Date
    Mar 2002
    Posts
    534
    There are almost 200 product codes. I assume have to add a new partition every time we added a product code ?

    Not if it is ok for you to have more than one product per partition and if there is a MAXVALUE partition.

    Unfortunately migrating to future version of Oracle is not an option at this point. They have a huge Oracle installation and the regression testing would take years. I believe they have uncovered some big issues as well.

    Related to the migration to a new Oracle version I would keep in minde that:
    - 8i is not supported anymore. This means that if you discover a new bug or got a problem you may not always get support from Oracle
    - As longer (more versions in between) you wait for the migration as complexer will get the regression testing.
    - Nice and usefull new features are not available (e.g. improved query rewrite, impoved MV refresh, table compression, new partitioning, improved partition pruning, new PGA management, new groupping algorithm...)
    Last edited by mike9; 02-15-2006 at 10:58 AM.

  8. #8
    Join Date
    Nov 2000
    Location
    greenwich.ct.us
    Posts
    9,092
    Assuming you have valid reasons (which I'm not convinced of), I would create a lookup table that contained numeric codes that grouped the product codes together. I would then take this field and partition by it. For example:
    Code:
    PRODUCT_CODE_LOOKUP
    -------------------------
    ProductCd   PartKeyID
    324               99
    307               99
    308               199
    315               199
    386               199
    316               299
    399               299
    374               299
    392               299
    I would then place this field in your main tables and use it as your partitioning key:
    Code:
    CREATE TABLE myTable (
       partkey,
       productcd,
       blah,
       bla)
    partition by range (
       values less than 100...
       values less than 200...
    )
    Then in the Transformation phase, you would join to pickup the partkey.
    Jeff Hunter

  9. #9
    Join Date
    Feb 2006
    Posts
    6
    I did think of adding a partitioning key to the tables but that was rejected.

    Assuming you have valid reasons (which I'm not convinced of), Do have doubts about the partitioning or the way of partitioning (in equal groups) ?

    I am trying to reduce the table size and optimise the access of those parts of the table that are frequently read and written to. The product code is the only way it can be split. Is this not the way to go ?

  10. #10
    Join Date
    May 2000
    Location
    ATLANTA, GA, USA
    Posts
    3,135
    Have you thought about HASH PARTITIONING?

    Tamil

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Click Here to Expand Forum to Full Width