ASM and table partitioning

Hi gurus,
a level of table colleague told me of partitioning is not necessary if the DSO is in place, the ASM can manage etc load balancing

your expert opinion please...

Thanks in advance,
Charles

Sorry, it's not true. ASM and partitioning are not related.

ASM allows to balance the blocks for a table or an index on multiple disks, which can improve the IO.
Split a table or index into small pieces to reduce the number of blocks that need to be analyzed and partitions allow parallelism.

Even if you use ASM, you can benefit from partitioning of tables (but this is a design decision based on your data and queries that you run)

Tags: Database

Similar Questions

  • Slow running queries on a table partitioned by date

    I have a table partitioned by COLDATE, when I write a query to get the data is slow, even if I try to only get 1 day data. How can I correct this query runs faster?

    Oracle Version: 10g

    Number of lines:

    See the below query

    select COL1, COL2 RANK() OVER (PARTITION BY   COL1, COLDATE ORDER BY OTHER_DATE DESC) SHOW_RANK
    from 
    SAMPLETABLE
    where COLDATE BETWEEN '01-JAN-2015' AND '01-JAN-2015'
    
    
    create table SAMPLETABLE
    (
      COL1   NUMBER(10) not null,
      COL2        NUMBER(10) not null,
      COLDATE       DATE not null,
      OTHER_DATE DATE
    )
    partition by range (COLDATE)
    (
      partition PARTITION_01_2015 values less than (TO_DATE(' 2015-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        tablespace MYTABLESPACE_2015
        pctfree 20
        initrans 1
        maxtrans 255
        storage
        (
          initial 64K
          minextents 1
          maxextents unlimited
        ),
      partition PARTITION_02_2015 values less than (TO_DATE(' 2015-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        tablespace MYTABLESPACE_2015
        pctfree 20
        initrans 1
        maxtrans 255
        storage
        (
          initial 64K
          minextents 1
          maxextents unlimited
        ),
      .
      .
      .
      .
      .
      .
      partition PARTITION_12_2016 values less than (TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        tablespace MYTABLESPACE_2016
        pctfree 20
        initrans 1
        maxtrans 255
        storage
        (
          initial 64K
          minextents 1
          maxextents unlimited
        )
    

    Force the session in parallel mode and check with the parallel hint option.

    SQL > alter session force parallel dml.

    SQL > select / * + parallel (table_name, none of the servers) * / colA, colB from table_name;

  • Table partitioning

    I have a table in my DB with stored more then 24 million and is growing every day. Growth rate increases with the passage of time. I want this partition table, in such a way that three first partitions such as each partition contains 10 years of data, and the remaining partition such as each partition contains data for 5 years.
    This is the first time that I am any table partitioning, I understand following sql is not correct, I need your help in resolving this issue.
    ALTER TABLE cb_pen_pmt_slip_dtl
    ADD
    PARTITION BY range (payment_date)
    INTERVAL (NUMTOYMINTERVAL(5,'YEAR'))
    (PARTITION p1 VALUES LESS THAN (TO_DATE('2000-01-01','YYYY-MM-DD'))
    partition p2 values less than (maxvalue));

    Hello

    This link can help you...
    >

    Kind regards

  • Table Partitioned parallelized vs

    Hello
    (11.2 server, OS = OL5)

    I have a table that contains more than 50 million lines. I created this table with option 'parallel degree (x).

    It seems that the time required to execute a query on this table does not change when I share that, for example partition range dividing the table to 3 partitions.

    (access the request a unique index in the table and the query criteria match exactly one of the partitions)

    the question:
    1. What is the difference of strategy parallelism between «Parallel degree...» "and the"Division "?
    2. which of them are better in what scenario?
    3. is it better to use PARALLEL_AUTOMATIC_TUNING?
    4 and especially why the performance doesn't change even with a local index on the partitions?

    Thank you
    SMSK.

    >
    It seems that the time required to execute a query on this table does not change when I share that, for example partition range dividing the table to 3 partitions
    . . .
    (access the request a unique index in the table and the query criteria match exactly one of the partitions
    . . .
    @Adam Martin: thanks, but I was explained to question 4 that the performance does not change when I toggle locality index.
    >
    I do not see why it would be necessarily change just of partitioning. What is your reason to think so?

    If the index access is used it is basically to get the IDENTIFIER of a line of interest. The line can then be retrieved using the ROWID. The recovery time will be essentially the same way regardless of the line in a partitioned table or non-partitioned table, and regardless of whether the line of partition. This is because the ROWID is (simple explanation here) a FILE ID (which file?), a BLOCK number (relative block in the file) and a LINE NUMBER (which line in the block. It doesn't matter if the segment that is the block is a segment of the table, partitioned table segment, segment index, etc.

    It is the only factor that COULD change the time of the query when the index is used if the access of the index itself is more effective when the table is partitioned when the table is not partitioned.

    Clearly if it is an overall index, there is a change since the index access itself will be the same.

    The only factor now that MIGHT change the time of the request is so if 1) the index is changed locally and 2) the local index has a different structure than the old index that allows to find the best performing required index entries.

    You have not published information on the index of structure, so let me give you an analogy which shows a scenario where it is clear that the access to the index would not change.

    Assume that the overall index is analogous to a catalogue of cards with 26 entries - one for each letter of the alphabet. My query accesses the entries beginning with the letter 'F' As discussed above in table access to aid a ROWID obtained from the index will be the same, if the table is partitioned or not.

    So now I have the partition table and have 26 partitions - one for each letter of the alphabet.

    With the help of the global index of the access to the partition of 'F' will be the same.

    Now, if I create a local index (instead of global) it's almost as if I now 26 index, one for each letter of the alphabet. The first entry for the 'F' in the global index can be found by reading the root node and perhaps one or two other nodes - then that an index scan can be performed.

    The first entry for the 'F' in the local index is at the beginning of the index - no need to jump or to do a binary search to ignore the 'A', 'B', etc. entered.

    This time difference is microscopic.

    Once I found the first entry for the 'F' either in the overall index, or local 'F' remaining entries in the index are consecutive, so access time will be the same.

    I don't know if there is a structural difference between the indices and the that you tried, but the above should show if the structure (order) has not changed it would not be a noticeable difference in access.

  • OLTP Table partitioning

    Hello

    I have a table (not partitioned) transactions, in an OLTP which is always get a lot of inserts (lines 600 million per day)

    1. I need to archive this table each month to the historical database (oldest months exist in the transactions table)
    2 - this table is usually strongly questioned by using CONNOTE_NUMBER and sometimes EVENT_DATE
    3 - queries are performing well by using the current design

    What is the best partitioning can I do in this scenario that I move to GR 11, 2? It's worth (I think that it is only good for archiving)?


    Here is the current design
    CREATE TABLE MOVEMENTS
    (
    CONNOTE_NUMBER VARCHAR2 (30) NOT NULL,
    PARCEL_NUMBER VARCHAR2 (30) NOT NULL,
    EVENT_DATE DATE NOT NULL,
    RECORD_TYPE NUMBER (2) NOT NULL,
    BRANCH_ID VARCHAR2 (3) NOT NULL,
    ROUTE_ID VARCHAR2 (4) NOT NULL,
    EVENT_SPECIFICS VARCHAR2 (80).
    LAST_TOUCH_USER VARCHAR2 (9) NOT NULL,
    LAST_TOUCH_DATE DATE DEFAULT SYSDATE NOT NULL,.
    UPLOADED_TO_AS400 VARCHAR2 (1) DEFAULT 'N',.
    REASON_CODE VARCHAR2 (2),
    ACTION_CODE VARCHAR2 (2),
    TRANSACTIONS_REFERENCE VARCHAR2 (7).
    RECEIVING_BRANCH_ID VARCHAR2 (4).
    PRE_NINE_SERVICE CHAR (1),
    THIRD_PARTY_ID VARCHAR2 (8).
    DG_IND VARCHAR2 (1).
    WEB_DISPLAY VARCHAR2 (1).
    RELINK CHAR (1)
    )


    CREATE INDEX TRACK_IDX_EVENT_DATE_BRANCH ON TRANSACTIONS
    (EVENT_DATE, BRANCH_ID)

    CREATE INDEX TRACK_UPLOADED_TO_AS400 ON TRANSACTIONS
    (UPLOADED_TO_AS400)

    CREATE INDEX TRACK_IDX_2 ON TRANSACTIONS
    (RECORD_TYPE, EVENT_DATE)

    CREATE A UNIQUE TRACK_PK ON TRANSACTIONS INDEX
    (CONNOTE_NUMBER, PARCEL_NUMBER, EVENT_DATE, RECORD_TYPE)

    CREATE INDEX TRACK_IDX_3 ON TRANSACTIONS
    (CONNOTE_NUMBER, WEB_DISPLAY)

    ALTER TABLE TRANSACTIONS ADD)
    CONSTRAINT TRACK_PK
    _ Of the PRIMARY KEY
    (CONNOTE_NUMBER, PARCEL_NUMBER, EVENT_DATE, RECORD_TYPE)

    Thanks in advance

    rp0428 wrote:
    Billy - the OP has
    >
    1. I need to archive this table each month to the historical database (oldest months exist in the transactions table)
    >

    A finer grain partition window can make a big difference in query performance. A need not only to look at data management (archiving).

    Do you see a monthly rolloff being a problem?

    Originally, my table more busy was range partitioned. As the insertion of the increased rate, so too the problem to get partition the DLL of enforcement against her instructions. Go to a State where I had a second window of zero for DOF on this table. This table was then divided into 100's as individual hash tables is no longer, the statements of the partition could be supported.

    Now if there is a guaranteed window where maintenance type DDL is possible - maybe we can get away with using partitioning on a busy OLTP table. But when OLTP means inserts and transactions every second, 24 x 7, 7 days a week - maintenance DOF on this table will probably be a serious problem.

    Could your other concerns be mitigated by annual creation of partitions following years? Thus, in December of 2012 create 12 partitions that will be needed for 2013. This would mean that only a necessary annual window for the maintenance operation.

    With smaller amounts of data and coarse partitions, it is an option. With finer grain partitions, and tons of data, not really. Yes, you can create new partitions that are sufficient for the next year, or even two. But what you do with the old partitions that must be archived and consume space necessary for new data?

    In order to maintain consumption of space efficient sliding window ito, you age and Archives old partitions (drop/truncate/drop). And cela you can't do once a year during the annual maintenance window.

    Don't tell not the OLTP tables and partitioning are mutually exclusive. Simply say that he should be careful in the choice of your Oracle storage structures when it comes to paintings which gets 1000 times per second. And 600 million row inserts/day (my table more busy doing 3 x only), IMO falling into the category of the think-carefully-and-practise-safe-hex.

  • Become table partitioning

    Hi I have a table where about 260 bln + records. and actionaly of infromation inserted. the structure of the table.

    CREATE TABLE NUM_CALLS
    (
    NUMBER OF N_BLK
    NUMBER,
    NUMBER OF SRV_A
    NUMBER OF SRV_B
    NUMBER OF IND_B
    START DATE,
    NUMBER OF PTT,
    NUMBER OF AIR,
    NUM VARCHAR2 (2000 BYTE),
    NUMBER OF HARD,
    VARCHAR2 (240 BYTE) SERVICES,
    STATUS VARCHAR2 (1 BYTE),
    VARCHAR2 (240 BYTE) DSC,
    INCOMING NUMBER,
    THE NUMBER LEAVING,
    NUMBER OF BILLPAR
    NUMBER OF AIR_SUB
    NUM_A VARCHAR2 (2000 BYTE),
    NUMBER OF PTT_SUB
    DIR CHAR (1 BYTE).
    YOUR VARCHAR2 (5 BYTE)
    NUMBER OF PTT_TOLL
    NUMBER OF R_ROAMFILE_SEQ
    NUMBER OF INDICATED,
    NUMBER OF SRV_TOLL
    PTT_TOLL2 NUMBER,
    SRV_TOLL2 NUMBER,
    IMEI VARCHAR2 (50 BYTE),
    RTYPE VARCHAR2 (10 BYTE),
    NUMBER OF R_MSCID
    NUMBER OF R_CALLS_LOG
    NUMBER OF UTC,
    NUMBER OF TRANSACTIONS,
    NUMBER OF SRC_SEQN
    NUMBER OF FWD_TYPE
    NUMBER OF TM_EVENTS
    DST VARCHAR2 (20 BYTE),
    ACCUM RAW (2000).
    UTTYPE CHAR (1 BYTE),
    TM_MODIFIERS RAW (2000)
    )
    TABLESPACE CDR
    PCTUSED 40
    PCTFREE 10
    INITRANS 1
    MAXTRANS 255
    STORAGE)
    80K INITIAL
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    FREELISTS 1
    FREELIST GROUPS 1
    DEFAULT USER_TABLES
    )
    LOGGING
    NOCOMPRESS
    NOCACHE
    NOPARALLEL
    NOMONITORING;

    There is no primary key on the table, and this table records are not unique.



    I want to become this table partitioning column by TRT (date) by date. is it possible to become the partitioning table after and if this table actionaly used? If possible then how can I do?

    Create the new table with a different name, but same structure as NUM_CALL with no data ex create table new_table in new_table select * from YOUR_TABLE_NAME where 1 = 2;
    or just get ddl for the use of this table:

    SELECT DBMS_METADATA. GET_DDL('TABLE','YOUR_TABLE_NAME') FROM dual;

    Modify this script, create the new table, and then create the partition you want (daily, monthly, annual) of course you can also create a subpartition.

    prepare a few anonymous PLSQL block, and then insert the data into the new partition table, that's all.

    stop the execution of the process, drop old table and rename the new table with the old name (deleted table)

  • Why cannot create the table partitioned successfully?

    Why cannot create the table partitioned successfully?
    SQL> create table hr.gps_log_his
    (id number,
    name varchar2(10),
    time date)
    tablespace ts_log_his
    PARTITION BY RANGE (TIME)
    (PARTITION udp_part09110707 VALUES LESS THAN (TO_DATE('09110708','yymmddhh24')),
    PARTITION udp_part09110708 VALUES LESS THAN (TO_DATE('09110709','yymmddhh24')),
    PARTITION udp_part09110709 VALUES LESS THAN (TO_DATE('09110710','yymmddhh24')),
    PARTITION udp_part09110710 VALUES LESS THAN (maxvalue)
    );
    
    (PARTITION udp_part09110707 VALUES LESS THAN (TO_DATE('09110708','yymmddhh24')),
    Error on line 7: 
    ORA-14120: DATE columns did not specify the complete partitioning limits.

    The detailed error message is as follows:

    ORA-14120: incompletely specified partition bound for a DATE column
    
    Cause: An attempt was made to use a date expression whose format does not fully
    (i.e. day, month, and year (including century)) specify a date as a partition bound
    for a DATE column. The format may have been specified explicitly (using TO_DATE()
    function) or implicitly (NLS_DATE_FORMAT).
    
    Action: Ensure that date format used in a partition bound for a DATE column supports
    complete specification of a date (i.e. day, month, and year (including century)). If
    NLS_DATE_FORMAT does not support complete (i.e. including the century) specification
    of the year, use TO_DATE() (e.g. TO_DATE('01-01-1999', 'MM-DD-YYYY') to fully
    express the desired date. 
    

    Action: Change to_date('09110708','yymmddhh24') to
    to_date('2009110708','yyyymmddhh24')

  • How to create and delete partitions automatically?

    How to create and delete partitions automatically?
    The environment is (10.2.0.3) 10g Oracle on the RHEL4.0 system.
    I want to partition the table of MESSAGES by date (NUMTODSINTERVAL(1,'DAY')). One partition per day. Because the table is huge, only 2 partitions (as of yesterday and today) are required to be available online. All partitions as earlier than the day before will be saved, and then dropped. I want to do the partition to create and delete the work performed automatically. How to do?

    Thank you

    junez wrote:
    Could do in detail?

    Here is an example of a procedure (part of a package) that adds/add a partition to an existing partitioned table schedule:

    procedure AddHourlyPartition( tableName varchar2, hour date, partitionName IN OUT varchar2 ) is
            sqlCreate       varchar2(4000);
            d               date;
    begin
            partitionName := GetHourlyPartitionName( hourly );  -- name of partition to create
    
            if existsPartition( tableName, partitionName ) then
                    -- nothing to do
                    return;
            end if;
    
            d := TRUNC(hour,'hh') + (1/24);                                -- upper date limit of the partition
    
            sqlCreate :=
            'ALTER TABLE '||tableName||'
                    ADD PARTITION '||partitionName||'
                    values less than
                            (TO_DATE('''|| TO_CHAR(d,'yyyy/mm/dd hh24:mi:ss') ||''',''yyyy/mm/dd hh24:mi:ss''))'
            ;
    
            ExecSQL( sqlCreate );
    
    end;
    

    The partition is safer to create partitions according to the experience?

    It is always better to write good packages in PL/SQL. Packages can (and should) use the application programming interfaces (API). Because our partition custom package that allows the management of partition. Or a messageLog package that allows for logging of application messages, errors, and debugging messages. Or a Notification package that allows to be send by email or SMS notifications. Etc.

    Design and software development, we should always approaches a "+ Lego mentality +"-which is to create building blocks ("+ Lego bricks +") which can be used and reused over and over again. Modularization is of crucial importance in software engineering as the result is not only of reusable code, but also the code that is easier to maintain, extend easier and easier to debug.

  • Composite of separation and the partition exchange(P-E)

    Is it possible to do P-E between non partitioned table and compositely partitioned table (RANGE-LIST)? If not, what are the other ways to load data TEMP table for RANGE-LIST partitioned tables?

    user4529833 wrote:
    Is it possible to do P-E between non partitioned table and compositely partitioned table (RANGE-LIST)? If not, what are the other ways to load data TEMP table for RANGE-LIST partitioned tables?

    Since you have a composite partitioned table there are actually two possibilities: you can exchange a not partitioned with a single list subpartition table, or you could exchange a partitioned table list with a score of range replacing all subparts of this unique range partition.

    For more information follow the link provided above.

    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/

  • I'm having a problem reinstalling Windows XP. After formatting the disk and create partitions, it will not complete the installation.

    Problem reinstalling Windows XP

    I'm having a problem reinstalling Windows XP.  After formatting the disk and create partitions, it will not complete the installation.  He goes back and reinstall Windows again.  I go through the installation of 39 minutes, the computer restarts to complete and it loops back and start the installation again. Why it does this and what I can do to move beyond this?

    Go into the BIOS and make sure that you your hard drive is not set to off, and that is the first priority boot CD and your second HD.

    Don't push when it restarts anything just to let him do what he does and report back if anything I'm sorry I have no idea.

  • Are there 3 partitions in iconia W510 win 8, primary, restoration and mbr partitions?

    Are there 3 partitions in iconia W510 win 8, primary, restoration and mbr partitions? I'm freezeups and other defects. I tried recovery and saw what looked like 3 partitions. tried to format the C: drive then tried to reload the dvd.still system's glitches and lost 2 partitions I think. The dvd system to recharge the three partitions, I see only a concert now about 15 of 32 GB HDD?

    There should be three partitions, there are questions that may appear if you try to use the reocvery disks without removing all three first. Since you are in the State in which your old system went to format C, just wipe the rest of the partitions off the power and run the DVD for a reboot to the original. It will create the partitoins suitable for you. Once everything is back now you can search here for suggestions about deleting the recovery partition (if you have several gigs in size) in order to free up space, because this partition is not necessary if you have the recovery DVDs.

  • How do I take a VISTA system which has a drive with a C and D partition and combne in C only a partition with the storage of which was C and D?

    How do I take a VISTA system which has a drive with a C and D partition and combne in C only a partition with the storage of which was C and D?

    Hello

    Make sure that D: is not the partition recovery including the manufacturer put there to make the recovery disks from and eventually to return your computer to how you bought

    You cannot combine C: and D: and their data using the Vista Disk Manager

    with Vista, you will need to save the data on D: - D: delete - and then extend C: into the now unallocated space where D: was to do a 1 partition 2

    read the tutorial below

    How to remove and extend a Partition with Vista disk management

    http://www.Vistax64.com/tutorials/95418-disk-management-delete-extend.html

  • disk management errors and lost partitions

    I have reimagee a older laptop that has a 500 GB drive. In the process, I have partitioned the hard drive in three volumes: a drive T: and V: each with 100 GB and C: got balance. A day or two later, I noticed T: and V: mysteriously disappeared. Fortunately, I didn't put anything in them again, there was no loss of data. However, it seems that I have lost access to disk space. Disk management show up with this:

    All traces of T: and V: disappeared. The c: volume 226GB poster (including 148GB is free)... which is all what I think after I had partitioned the disk. But then underneath, the entry to disk 0 C: Watch is affected 465 GB... it is unclear where the balance of 35 GB went. If I try to reduce the volume, it presents me with the total available size 476938MB and shrink space 151834 MB. If I try to further reduce 1 MB, it fails with the error "Virtual Disk Manager: the parameter is incorrect."

    Now that I'm in this State, is it possible to recover without start from scratch?

    Use the free Partition Wizard boot CD to shrink C by as much as you like.

    Assistant Creation of partition resize Partition - video help.

    Create and format partitions of data desired logic.

    Create partition Wizard Partition - video help

  • Different between primary and logical partition?

    Referring to the next video, after a free space for the new partition, I create partition, which show the logical drive (blue color), but the other partitions are of primary partitions (blue color), I would like to know it possible to create a main drive instead of logical drive partition, and what difference is between the primary and logical partitions.

    There is an option to delete a logical partition (drive D :), after you remove it, can he create a new primary partition?) Through this process, it will cause no problem on the primary partition (drive c :))?

    Is there an advantage to have a logical partition (drive D :)?

    In the future, if I need more space in C: drive, it will be easier to extend the primary partition (drive c :)) with logical partition (drive D :)?

    If a logical partition (drive D :) convert primary partition, it will be easier to extend the primary partition (drive c :)) with primary partition (drive D :)?)

    http://www.YouTube.com/watch?v=jKW6ROWZ5yU

    Does anyone have any suggestions?

    Thanks a lot for your suggestions

    Hello

    Thanks for posting your query in Microsoft Community!

    According to the description, it seems you want to know the differences between the primary and logical partitions.

    I'll be happy to help you with this.

    I suggest you to refer to the following articles and check if it helps.

    Understanding Disk Partitions

    http://TechNet.Microsoft.com/en-us/library/dd799232 (v = ws.10) .aspx

    What are partitions and logical drives? (Applies to Windows 7)

    http://Windows.Microsoft.com/en-in/Windows-Vista/what-are-partitions-and-logical-drives

    If you have any questions on Windows, feel free to let us know. It is our pleasure to be of service.

  • ASM and SCAN listener running of the Oracle user not user network

    Hi all

    Greetings for the day!

    In one of my new customer environment, I see that ASM and SCAN are running oracle user not user network, although the ORACLE_HOME is on the grid software. I read somewhere that we should run ASM and SCAN from grid not Oracle. Please let me know if I'm right and if there are consequences of the performer of the Oracle user.

    OS: Red Hat Enterprise Linux Server 6.5 (Santiago) 64-bit release

    Oracle RDBMS: 11204

    Oracle GI: 11204

    CAR Info: 2 node cluster.

    Thank you very much.

    AbbDBA

    The important word is expected here. It is suggested that 11.2, that the separation of roles, a non-oracle account must be used for the GI. But this is not essential, and certainly not wrong to use Oracle db and IM account as long as you do not use ASM according to security features. So nothing to worry about. You're good.

    Aman...

Maybe you are looking for