Large (highest ?) Number of Partitions / SubPartitions in *Production*

In theory, the maximum number of Partitions/SubPartitions that Oracle supports for a table is 1024K-1 in 10gR2.
Per MetaLink Note#76765.1, the limit was 64K-1 in 8i -- and, I understand from the 9i docs, was also the same limit in 9i. The Note candidly admits that only 1,000 Partitions have been tested.
Have you implemented / seen implemented, say 64thousand Partitions for a table (and this being done for possibly half-a-dozen tables), with at leaste one corresponding LOCALly Partitioned Index ?
What are the implications on :
1. MetaData in the Shared Pool and Latching.
2. Gather_Stats (done GLOBAL or PARTITION wise).
3. Queries that, very unfortunately, end up scanning all the partitions, many of which are small 64K partitions only.

.

Similar Messages

  • Limit on the number of partitions a table can have

    Hi,
    It's been quite some time I'm thinking of a simple and the best solution to a performance issue in my application. Benefiting out of partitioning the table seems a simplest approach; it involves very minimal changes to my application code and in addition, it keeps the overall application logic 100% intact. However, at times, the number of partitions required can grow to as large as 500 thousand. I know of another application implementing as many as 50 thousand partitions for one of its tables. I'm wondering if Oracle recommends or poses any limit to a number of partitions the table can have. How does that limit, if it exists, vary if each of my table partition holds only a small amount of data; say, not more than 2 thousand records each of 1 KB size. What are the important considerations that one needs to keep in mind while creating the huge number of partitions for a table?
    Any inputs on this would be a great help.
    Thanks,
    Aniruddh
    ps: Consider Oracle releases 10g onwards.
    Edited by: Aniruddh on Dec 30, 2009 9:46 AM
    Edited by: Aniruddh on Dec 30, 2009 9:50 AM

    Aniruddh,
    >
    What are the important considerations that one needs to keep in mind while creating the huge number of partitions for a table?
    >
    I doubt if you are using partitioning for the right causes. Please explain how is your data structured and why you need to create so many partitions..?
    when creating partition, you need to consider..
    a) why you need to partition?
    b) how is your data structured
    c) how your data is indexed.
    d) What kind of queries would you firing on this table to get the data. Will they use the partition key ?
    Thanks,
    Rajesh.
    Please mark this/any other answer as helpful or answered if it is so. If not, provide additional details/feedback.
    Always try to provide create table and insert statements to help the forum members help you better.

  • Number of partitions?

    I'm currently working on a database containing large, (100 million +) amounts of order information. This is due to be re-partitioned as part of an upgrade process. It seems most appropriate to perform range partitioning, but I was hoping someone could provide me with some information relating to performance impact based on the number of partitions.
    The best I can explain it is, assume a graph with speed of query execution on the y axis and number of partitions on the x. At present I've no idea what shape this graph will be - is there a performance degradation as the number of partitions becomes too high, resulting in a bell curve?
    I would assume the most sensible number of partitions would be acheived by dividing the data in the way that it is most commonly queried, (i.e. if most reports are run on monthly data, create monthly partitions) but again, this is all just speculation.
    Any information or guidance greatly appreciated.

    And if we have lots of radically different queries
    then you cannot hope to satisfy them all: some will
    be hit. So who do we privilege: the short running,
    often used or the slow running, infrequently used?
    No brainer, right? Except that we might need to ask
    ourselves: who runs those queries? For instance,
    which queries are run by the people who sign off the
    IT Dept's budget? Might that influence our
    decisions ;)I completely agree with you on this point. Initial design of one of our databases was done keeping the top management in mind... faster reports... on the click reports... I still wonder why it was so, when our internal SLA clearly stated that the administrative/management reports would run in approximately 2 minutes.
    We then figured out a better method to achieve the same with some overnight jobs and at least got the MIS department happy about the performance of queries (which was delaying the other reports due to obvious reasons).
    There is no simple solution. I accept this not from partitioning point of view but from entire database design point of view.
    Thanks Andrew.

  • Partition Manager is creating more than double number of partitions .

    Dear Team,
    I am facing a very weird scenario .
    For one of my product , one of the section is the Partition Manager executing for the Tables . Now I am facing a problem and it is really getting difficult for me to get to the root cause and thus posting in the forum ...
    I am having two Linux systems , in one of the system, installation of the product goes fine , and partition manager is doing the partition as intended .
    In another Linux lab , ( with some extra application installed ) , the same product is failing to install , and the problem is Partition Manager is doing the partition more than double as compared to first Lab and because of this it ends up using all the space in the system .
    My Concern is do we have any global setting for this Partition Manager in the Oracle Database , and because of this I am seeing the difference in this 2 labs ..I will be really thankful for any of the inputs and suggestion ...
    With Very Best Regards,
    Shail...
    Edited by: 999908 on 13 Apr, 2013 9:27 PM

    Hello Justin,
    First of all thanks a lot for your patience ... :) , in looking into my problem ..
    But I guess it is using Oracle partitioning Concept only...I dont think , my product is using the third party partition tool ( I will recheck this once to confirm )
    What I understand is that , if for any table the number of partitions is almost thrice in one system as compared to other , then it will end up consuming more space for the table in the system where it is creating more number of partitions ...
    I guess memory usage for any table also depends on the number of partitions ( Please do correct me if I am wrong here ) , if more number of partitions are there then more memory will be consumed , I guess..With Very Best Regards,
    Shail

  • Maximum number of partitions allowed per table.

    Interesting findings with interval partitioning:
    SQL> SELECT  *
      2    FROM  v$version
      3  /
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    CORE    11.2.0.3.0      Production
    TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - Production
    SQL> DROP TABLE tbl PURGE
      2  /
    Table dropped.
    SQL> CREATE TABLE tbl(
      2                   id number(6),
      3                   dt date
      4                  )
      5    PARTITION BY RANGE(dt)
      6      INTERVAL (INTERVAL '1' DAY)
      7      (
      8       PARTITION p1 VALUES LESS THAN (date '-857-12-31')
      9      )
    10  /
    Table created.
    SQL> select  partition_name,
      2          high_value
      3    from  user_tab_partitions
      4    where table_name = 'TBL'
      5  /
    PARTITION_NAME HIGH_VALUE
    P1             TO_DATE('-0857-12-31 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                   LS_CALENDAR=GREGORIAN')
    SQL> INSERT
      2    INTO tbl
      3    VALUES(
      4           1,
      5           sysdate
      6          )
      7  /
    1 row created.
    SQL> DROP TABLE tbl PURGE
      2  /
    Table dropped.
    SQL> CREATE TABLE tbl(
      2                   id number(6),
      3                   dt date
      4                  )
      5    PARTITION BY RANGE(dt)
      6      INTERVAL (INTERVAL '1' DAY)
      7      (
      8       PARTITION p1 VALUES LESS THAN (date '-858-01-01')
      9      )
    10  /
    Table created.
    SQL> select  partition_name,
      2          high_value
      3    from  user_tab_partitions
      4    where table_name = 'TBL'
      5  /
    PARTITION_NAME HIGH_VALUE
    P1             TO_DATE('-0858-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                   LS_CALENDAR=GREGORIAN')
    SQL> INSERT
      2    INTO tbl
      3    VALUES(
      4           1,
      5           sysdate
      6          )
      7  /
      INTO tbl
    ERROR at line 2:
    ORA-14300: partitioning key maps to a partition outside maximum permitted number of partitions
    SQL> From Logical Database Limits:
    Maximum number of partitions allowed per table or index: 1024K - 1
    I always thought limit implies to number of actual, not potential partitions, however it looks like I was wrong, although it makes not much sense to limit potential and not actual partitions:
    SQL> select  trunc(sysdate) - date '-858-01-01',
      2          1024 * 1024 - 1
      3    from  dual
      4  /
    TRUNC(SYSDATE)-DATE'-858-01-01' 1024*1024-1
                            1048661     1048575
    SQL> select  to_char(DATE'-858-01-01' + 1048575,'MM/DD/YYYY')
      2    from  dual
      3  /
    TO_CHAR(DA
    11/17/2012
    SQL> So tomorrow "magic" date should increase by one day. I'll test it. But more interesting if tomorrow I will be able to insert a row that forms a new partition into table TBL.
    SY.

    rp0428 wrote:
    The other argument is that Oracle has to be able to automatically create any partition required and it can only create 1024k - 1. So if you create yours with sysdate how could it create all of the others?Not sure I follow. What is the purpose of counting potential partitions? Partition part# iin sys.tabpart$ is not assigned based on potential partition position. If I issue a DDL to create new partition regardless of interval/non-interval partitioning Oracle has to check how many partitions table has so far or po and raise same/similar exception if partition I am asking to create is over the limit. And, in any case, knowing we can create all potential partitions at table create time doesn't mean I will not try to insert data outside the range. So there is absolutely no guarantee Oracle can automatically create any partition requested. Again, I don't understand why creating non-interval partitioned table with a single initial partition has partition count of 1:
    SQL> DROP TABLE tbl1 PURGE
      2  /
    Table dropped.
    SQL> CREATE TABLE tbl1(
      2                    id number(6),
      3                    dt date
      4                   )
      5    PARTITION BY RANGE(dt)
      6      (
      7       PARTITION p1 VALUES LESS THAN (date '-857-12-31')
      8      )
      9  /
    Table created.
    SQL> SELECT  partition_count
      2    FROM  user_part_tables
      3    WHERE table_name = 'TBL1'
      4  /
    PARTITION_COUNT
                  1
    SQL>And interval partitioned table with same single initial partition has partition count of 1048575:
    SQL> CREATE TABLE tbl1(
      2                    id number(6),
      3                    dt date
      4                   )
      5    PARTITION BY RANGE(dt)
      6      INTERVAL (INTERVAL '1' DAY)
      7      (
      8       PARTITION p1 VALUES LESS THAN (date '-857-12-31')
      9      )
    10  /
    Table created.
    SQL> SELECT  partition_count
      2    FROM  user_part_tables
      3    WHERE table_name = 'TBL1'
      4  /
    PARTITION_COUNT
            1048575
    SQL> Would be interesting to find out what forces Oracle to go into potential partition mode for interval partitioning.
    SY.

  • Query latency vs number of partitions

    I am trying to measure the average latency per object retrieval using the query approach, and what I am finding is that as the number of instances of the server (a server being a single jvm running DefaultCacheServer with backup-count set to 1, and partition-count set to 1021) increases, the latency increases significantly as shown in the results below:
    Latency (microseconds) for Number of server instances
    Objects 2 4 8 16
    In Cache srvrs srvrs srvrs srvrs
    1K 593 730 889 1175
    10K 592 720 880 1206
    50K 580 724 879 1200
    100K 585 726 877 1204
    The query code is as follows:
    final Filter filter = new EqualsFilter(idExtractor, key);
    final Filter limitedFilter = new LimitFilter(filter, 1);
    final Set spotPricesKeys = cache.keySet(limitedFilter);
    if (spotPricesKeys != null && spotPricesKeys.size() > 0){
         spotPrice = (SpotPrice) cache.get(spotPricesKeys.iterator().next());
    and
    private static ValueExtractor idExtractor = new KeyExtractor("intValue");
    Any idea why the latency is increasing with the added number of server instances?
    Thanks
    Adsen

    Partitioning strategies is an "advanced" feature of Coherence. It works much like a hash function but instead of a hash code it calculates the partition number that will be used for each key. You can use more or less any deterministic algorithm based only on key information. Lets assume that you have a cache with strings as keys (representing for instance a persons name) and you would like to partition based on the first letter it could look something like this (this is just an example - in production code you would like to make sure the algorithm statistically makes as even use of all the partitions that you have in your cluster!):
    public class MyPartitionStrategy implements KeyPartitioningStrategy, Serializable {
    private PartitionedService partitionedService;
    public MyPartitionStrategy() {
    public void init(final PartitionedService partitionedService) {
    this.partitionedService = partitionedService;
    public int getKeyPartition(final Object key) {
    if (key instanceof String) {
    return ((String) key).charAt(0) % (partitionedService.getPartitionCount() + 1);
    } else {
    return key.hashCode() % (partitionedService.getPartitionCount() + 1);
    With this filter you would know that all keys starting with the same first letter ends up in the same partition. You would specify the use of this filter once in the coherence configuration (dont remember the element to use on top of my head though).
    Now assume that you for some reason want to do some query that only should apply to entries with a key starting with the letter 'a' you could do that with a PartitionedFilter (you would have to write some code that determines what partition the key 'a' would end up if it existed and then restrict the query to that single partiton). With this solution Coherence will only send the request to the single node holding the primary for that one partition holding all the "axxxx" keys and not to all the nodes in the cluster making the query scale close to linerary no matter how many nodes you have!
    A problem when the number of partitions grow is to find a partitioning strategy that allocates a useful set of objects into a single partition. If you for instance have like 4000+ partitions and would like to divide addresses based on state in order to perfrom queries against all of your customers in a particular state there is no obvious way to do that since the number of states is much smaller than the number of partitions :-(
    This kind of partitioning can however be very useful in many cases (we have used it to good effect in my current project).
    In produktion code it is often some part of a composite key that is useful as a key partitioning criteria and you could then for instance return the standard hash code of that key part modulus he partition count.
    Another possibly useful feature you may look at is when it comes to limiting the number of nodes invloved in queries is the KeyAssociatedFilter (if you use key association at all in your cache).
    /Magnus

  • I am trying to download Photoshop CS6 onto my Mac from the Adobe website, but I do not have a serial number. I made an Adobe ID, but the serial number is not under "My Products" nor have I received an email including a serial number. I do not know how els

    I am trying to download Photoshop CS6 onto my Mac from the Adobe website, but I do not have a serial number. I made an Adobe ID, but the serial number is not under "My Products" nor have I received an email including a serial number. I do not know how else to find the serial number. Please help!

    You need to contact Adobe Support either by chat or via phone when you have serial number and activation issues.
    Here is a link to a page with options to help make contact:
    http://www.adobe.com/support/download-install/supportinfo/

  • How to get highest number of open cursors within the current calendar day

    Hi all ,
    i need to know how to get the highest number of open cursors within the current calendar day.
    Thanks ,

    823030 wrote:
    the issue is my customer is getting the error ORA-01000: maximum open cursors exceeded and we need an sql statment that gets the following values :
    -highest number of open cursors experienced in the current calendar day.
    -current open cursors
    -and maximum open cursorsThis error is rare. It happens when
    a) the value of the open cursor parameter is set extremly low (default is something like 1000). Low would be something like 10.
    b) <strike>you have many concurrent users(=sessions) and </strike>the application does not use bind values
    In this case each select will open a new cursor, instead of reusing it.
    c) you have a select that opens a cursor for each line. This can happen with a statement where you have the CURSOR keyword somewhere in the select or where clause. Those cursors will be closed when the select is finished. But during the run time of the select, all cursors stay open.
    To track the number of "open cursors" during the day you would need to implement some monitoring. Maybe based on the view that was already mentioned.
    Edited by: Sven W. on May 16, 2011 2:30 PM - since the parameter is on session level, other open cursors should not influence it much.

  • Installed successfully, but can't update.  Error "Serial Number is not for qualifying product"

    I installed Adobe Creative Suite Production Premium (CS5) on a new PC (Windows 8.1).  Installation was successful.  I uninstalled it on old PC and de-activated it.  My problem is that I can't Update.  Without Updates, I can't read newer Canon photos (so I can't use Bridge or PhotoShop).  In doing the install the first time, I put in an incorrect Adobe product number (I think from Elements 8.0, which I purchased years ago).  I have re-installed twice using the correct serial number, but same result:  I can't Update the programs and get a "Serial Number is not for qualifying product" error..  Please help.  Dave

    update manually,  http://www.adobe.com/downloads/updates/

  • My computer crashed and I need a new serial number.  I have my product key

    My computer crashed and I need a new serial number.  I have my product key

    Duplicate thread http://forums.adobe.com/thread/1204907

  • I own a copy of CS5.5 that I have on my PC. I have switched to a new iMac and during activation it says my serial number is not for the product I'm trying to activate

    I own a copy of CS5.5 that I have on my PC. I have switched to a new iMac and during activation it says that my serial number is not for the product I'm trying to activate. I have tried live chat a couple times but it says that chat is not available.

    Jb4short you can verify your registered serial number under your account at http://www.adobe.com/.  You can find more details on how to locate your serial number at Find your serial number quickly - http://helpx.adobe.com/x-productkb/global/find-serial-number.html.
    If you have a volume license serial number then you need to download the volume license installation files from https://licensing.adobe.com/.

  • Assign batch number from sale order to production order automatic

    Dear all, I have a question for all. Please help me in this case
    My scenario is make to order
    I have a sale order, when i create sale order, i have assigned batch number at each line item.
    When i run MRP for sale order (MD50), the system generate a planned order for it and I've converted to production order.
    So when I view production order, I think that batch number what I've assigned to sale order will be assign to production order but that is not happen.
    So, can you help me solve this problem. I think that sap can assign batch number from sale order to production order automatic but i don't know how to configure that
    Thanks all

    Hi,
    To the best of my knowledge, when system is generating planned order / production order from sales order system doesnt copy batch number from sales order.
    In fact , you are following wrong practice for generating batch no.
    Follow procedure like this :
    Create sales order without any batch assigning there. Run MRP with MD50 and then convert planned order to Production Order.
    While creation / releasing of Production order, you have option to generate batch automatically by following way :
    Go to OPKP (Production Scheduling Profile) -> Take your plant & give suitable name to Production scheduling profile-> Batch Management tab -
    > Automatic Batch creation in the order maintain this field as
    1     Automatic batch creation at order creation
    or
    2     Autom. batch creation at order release
    This will generate batch number automatically at the time of creation or release of order.
    Then follow same process i.e. Goods Issue, Confirmation & GR for production order.
    So you will get sales order stock in the form of batch managed.
    Check & revert if any issue in above flow.
    Regards,
    Tejas

  • I can't find the serial  number of the elements 13 product box

    Where is the serial number on the elements 13 product box?

    1-Elements is not part of the Cloud... moved
    2-Lost serial # http://helpx.adobe.com/x-productkb/global/find-serial-number.html

  • I did not keep the email with my registration for the free trial so I do not have a serial number as I have no products due to the fact that my trial has expired but I would now like to purchase a product and I cannot skip the serial number request.

    I did not keep the email with my registration for the free trial so I do not have a serial number as I have no products due to the fact that my trial has expired but I would now like to purchase a product and I cannot skip the serial number request in order to buy the product it's so irritating I'm about to just do a different product altogether... anyone know how to get or bypass the serial number request?

    You must first make the purchase, then you will receive the serial number you are asking about.  YOu do not acquire the serial number thru the software.  You acquire it thru the purchase, possibly via a follow-up confirmation  email.

  • I bought Studio MX in 2006. I have the CD and the serial Num. but when I tried to reinstall it, it would not recognize the serial number. I registered the product in 06. Back then it was called macromedia.

    I bought Studio MX in 2006. I have the CD and the serial Num. but when I tried to reinstall it, it would not recognize the serial number. I registered the product in 06. Back then it was called macromedia. 

    MX 2006 is so old it's no longer supported.  See if this helps you.
    Error: Unable to Activate | Macromedia products
    Nancy O.

Maybe you are looking for

  • Can't burn a readable DVD

    Using Elements 7... I just bought his to try my hand an some vacation videos... last time I used Elements was v3! Anyway I can't for the life of me burn a DVD that is readable once it is finished. I'm using some older 4x DVD+R media. Everything seems

  • Unable to mark ITXEX field for first subtype in IT40

    Hi, My problem is as follows: 1. I am using a bespoke ABAP program to create a subtype (any subtype) for IT40 (objects on loan). 2. The program is able to create the infotype - subtype records correctly. This is was verified using PA30. 3. However, i

  • Migration assistant fails to *find* machine

    Very simple, thought I'd fire it up before going to sleep and have a baseline to tune from in the morning. No such luck -- just a band-new 10.5.7 MBP seeking to slurp from a couple year old 10.5.7 Core2Duo iMac. I haven't any FW800 small-port cables,

  • I have downloaded a serie and now i want it to put on a dvd . can you make a dvd with menu in idvd from the serie

    i have downloaded a  serie and now i would like to put them on dvd with a menu so each plot can play separatetly

  • SMALL Anchor Points

    Oh My God, I loooooooove Illustrator, BUT: ANCHOR POINTS DRIVE ME CRAZY!!! When I am drawing paths with pen tool, and need to adjust anchor points or handles, they are so small! I work at 1280 rez, and seems that those tiny points were designed to dr