Oracle 10g Merge Insert performance

Hi All,
Performance wise, is it better to use a regular insert statement or Merge (insert only) statement ... in Oracle10g. (no updates are used in this merge statement).
Thanks for the input.

thanks for the comment ... here is the more info for INSERT alone using Merge ... thought Oracle has a reason for this to add in 10g.
http://www.oracle-developer.net/display.php?id=310
I am looking for right answer about the performance

Similar Messages

  • Oracle 10g Express Edition performances

    I'm looking for something about performances of Oracle 10g Express Edition to make a little presentation for the University. Can anyone help me?
    Thnaks

    I'm looking for something about performances of
    Oracle 10g Express Edition to make a little
    presentation for the University. Can anyone help me?What's the matter with the docco? 1 processor only, 1GB ram, one db
    and 4GB disk.
    As to how this will affect your* performance, this can only be
    done by you testing under given conditions. However, if you are doing
    Uni work, why not use the EE - you only have to pay for deployment AFAIK.

  • Oracle 10g - WAN low performance.

    Hello All,
    I have problem with Oracle 10g Server working on Windows 2003. There is a database and its working with client in delphi.
    Inside LAN all working perfect, but trough WAN im waiting for transaction results about 10 times longer. I noticed that there is not connected with bandwidth, the same results i get with 512 Kbits, 2Mbits, and 5Mbits, pings and for example copying files working perfect, but traffic between clients and server 10g used always max 512Kbit of bandwidth. Any ideas?
    Kris

    On your WAN connections, what kind of ping times do you see? What kind of distances are we talking about for your WAN connections? Is your application "chatty"? How many round-trips does a transaction consist of?
    -Mark

  • Oracle 10g tools for performance/troubleshooting

    Hi
    I want to find some tools for moniting the performance and troublesooting. Any suggest? OEM tuning pack, statspack...etc
    Thanks

    Different tools for different troubles. What trouble are you trying to shoot?
    For general information, try the Performance Tuning guide.

  • Insert statement taking time on oracle 10g

    Hi,
    My procedure taking time in following statement while database upgrading from oracle 9i to oracle 10g.
    I m using oracle version 10.2.0.4.0.
    cust_item is matiralize view in procedure and it is refreshing in the procedure
    Index is dropping before inserting data into cust_item_tbl TABLE and after inserting data index is created.
    There are almost 6 lac records into MV which are going to insert into TABLE.
    In 9i below insert statement is taking 1 hr time to insert while in 10g it is taking 2.30 hrs.
    EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL QUERY';
    EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML';
    INSERT INTO /*+ APPEND PARALLEL */ cust_item_tbl  NOLOGGING
             (SELECT /*+ PARALLEL */
                     ctry_code, co_code, srce_loc_nbr, srce_loc_type_code,
                     cust_nbr, item_nbr, lu_eff_dt,
                     0, 0, 0, lu_end_dt,
                     bus_seg_code, 0, rt_nbr, 0, '', 0, '', SYSDATE, '', SYSDATE,
                     '', 0, ' ',
                                   case
                                 when cust_nbr in (select distinct cust_nbr from aml.log_t where CTRY_CODE = p_country_code and co_code = p_company_code)
                                 THEN
                                         case
                                            when trunc(sysdate) NOT BETWEEN trunc(lu_eff_dt) AND trunc(lu_end_dt)
                                            then NVL((select cases_per_pallet from cust_item c where c.ctry_code = a.ctry_code and c.co_code = a.co_code
                                                          and c.cust_nbr = a.cust_nbr and c.GTIN_CO_PREFX = a.GTIN_CO_PREFX and c.GTIN_ITEM_REF_NBR = a.GTIN_ITEM_REF_NBR
                                                          and c.GTIN_CK_DIGIT = a.GTIN_CK_DIGIT and trunc(sysdate) BETWEEN trunc(c.lu_eff_dt) AND trunc(c.lu_end_dt) and rownum = 1),
                                                          a.cases_per_pallet)
                                      else cases_per_pallet
                                  end
                          else cases_per_pallet
                     END cases_per_pallet,
                     cases_per_layer
                FROM cust_item a
               WHERE a.ctry_code = p_country_code ----varible passing by procedure
                 AND a.co_code = p_company_code   ----varible passing by procedure
                 AND a.ROWID =
                        (SELECT MAX (b.ROWID)
                           FROM cust_item b
                          WHERE b.ctry_code = a.ctry_code
                            AND b.co_code = a.co_code
                            AND b.ctry_code = p_country_code ----varible passing by procedure
                            AND b.co_code = p_company_code   ----varible passing by procedure
                            AND b.srce_loc_nbr = a.srce_loc_nbr
                            AND b.srce_loc_type_code = a.srce_loc_type_code
                            AND b.cust_nbr = a.cust_nbr
                            AND b.item_nbr = a.item_nbr
                            AND b.lu_eff_dt = a.lu_eff_dt));explain plan of oracle 10g
    Plan
    INSERT STATEMENT  CHOOSECost: 133,310  Bytes: 248  Cardinality: 1                      
         5 FILTER                 
              4 HASH GROUP BY  Cost: 133,310  Bytes: 248  Cardinality: 1            
                   3 HASH JOIN  Cost: 132,424  Bytes: 1,273,090,640  Cardinality: 5,133,430       
                        1 INDEX FAST FULL SCAN INDEX MFIPROCESS.INDX_TEMP_CUST_AUTH_PERF_MV Cost: 10,026  Bytes: 554,410,440  Cardinality: 5,133,430 
                        2 MAT_VIEW ACCESS FULL MAT_VIEW MFIPROCESS.TEMP_CUST_AUTH_PERF_MV Cost: 24,570  Bytes: 718,680,200  Cardinality: 5,133,430  can you please look into the issue?
    Thanks.

    According to the execution plan you posted parallelism is not taking place - no parallel operations listed
    Check the hint syntax. In particular, "PARALLEL" does not look right.
    Running queries in parallel can either help performance, hurt performance, or do nothing for performance. In your case a parallel index scan on MFIPROCESS.INDX_TEMP_CUST_AUTH_PERF_MV using the PARALLEL_INDEX hint and the PARALLEL hint specifying the table for MAT_VIEW MFIPROCESS.TEMP_CUST_AUTH_PERF_MV Cost might help, something like (untested)
    select /*+ PARALLEL_INDEX(INDX_TEMP_CST_AUTH_PERF_MV) PARALLEL(TEMP_CUST_AUTHPERF_MV) */Is query rewrite causing the MVs to be read? If so hinting the query will be tricky

  • PeopleSoft HRMS 8.3 with Oracle 9i DBMS upgrading to Oracle 10g DBMS?

    Has anybody else gone down this path? We are testing under Oracle 10g, and experiencing performance issues. Thanks,
    Rich
    [email protected]

    We successfully followed the same path upgrade recently, no particular issue (except some tunning has to be done), you should absolutely read the red paper on MOS :
    PeopleSoft Enterprise Performance on Oracle 10g Database ID 747254.1+
    Nicolas.

  • Performance: Bulk Insert Oracle 10g

    Following Situation: We have a VISUAL BASIC 6 Application (I know ... VB6 ... ), an XML-File with data and an Oracle 10g database. The XML-File has to be imported in the database.
    Up to now the Application (Via ADO) analyses the XML-File and creates INSERT and UPDATE Stmts and sends them to the DB. The Stmts will be handled within one Transaction and the application sends each INSERT, UPDATE separate to the database.
    But this is a performance desaster... as expected ... :-) The import takes several hours ...
    Now, my task is to increase the performance, but how .....
    I tried several things, but without the real success, e.g. ...
    I performed some tests with the SQl*Loader. The Insert is really fast, but I can't make an Update, so I had to delete the existing data first. But I can't proceed the two steps in one transaction, because of the SQL*Loader.
    I tried to write a stored procedure which accepts an ADO.Recordset as input param and then creates the Insert and Update statements within the DB to reduce network traffic, but I didn't find a way to handle a ADO.Recordset as a input parameter for a stored procedure.
    Has someone an idea how I can import the XML file in a fast way into the existing DB (and maybe make an Replace of existing records during the import ...) within one transaction without changing the structure of the DB ??? (Oracle packages?? interface in C++ integrated in VB6....) Is there an way to import the XML-File directly to the DB?
    Thanks in advance for any idea :-))

    I tried to write a stored procedure which accepts an ADO.Recordset as input param ...., but I didn't find a way to handle a ADO.Recordset as a input parameter
    for a stored procedure.Use SYS_REFCURSOR as the parameter type. Bulk collect it into a PL/SQL collection. Use FORALL to soup up the INSERT and UPDATE statements.
    Cheers, APC
    blog: http://radiofreetooting.blogspot.com

  • Insert and update same record of table using store procedure in oracle 10g

    Hi,
    I am using oracle sql developer for this.
    I have created Store procedure which run after every 30mins of interval.
    the problem is Ii need to insert data for first time of day then later that same record should update for particular field(here its plan code).
    if new field is coming (if new plan code is generated) then it should insert data and again update same for interval.
    means for each plan individual record(i.e. plan wise summary) should be there for only a day. next day new record for same plan.

    Hi,
    You should use Merge like shown below:-
    Merge into original_table a
    using second_table b
    on (a.primary_key=b.primary_key and a.primary_key........)
    when match then
    update set column_list=b.column_list
    when not match then
    isert into (column list)
    values(a.column_list)If you dont know much about merge then follow below link..
    http://www.oracle-developer.net/display.php?id=203
    http://www.oracle-base.com/articles/10g/merge-enhancements-10g.php

  • Oracle 10G performance problems

    Hello,
    we have a lot of performance problems with oracle 10G. Especially tables scan on DRAW or AEN1 have long response times. It seems that the CBO uses the wrong strategy. The latest merge fix is already installed. Any idea to solve the problem is welcome.
    Best regards
    Juergen Remmert

    We had similar performance issues in our environment, once we upgraded from 9.2.0.2 to 10.2.0.2.
    Oracle: 10.2.0.2
    SAP: 4.7x110
    OS: SOLARIS 9 64bit
    The above mentioned notes were very helpful. We had to install an oracle patch as well (found on marketplace)  --  6321245
    and make the following oracle parameters changes:
    pga_aggregate_target - 144MB (default = 25MB)
    *.event="10027 trace name context forever, level 1"
    *.event="10028 trace name context forever, level 1"
    *.event="10162 trace name context forever, level 1"
    *.event="10183 trace name context forever, level 1"
    *.event="10191 trace name context forever, level 1"
    *.event="10629 trace name context forever, level 32"
    *.event="38068 trace name context forever, level 100"
    *.event="38043 trace name context forever, level 1"
    *.optimizer_index_caching=50
    *.optimizer_index_cost_adj=20
    *.parallel_execution_message_size=16384
    *._b_tree_bitmap_plans=FALSE
    *._index_join_enabled=FALSE
    *._optim_peek_user_binds=FALSE
    *._optimizer_mjc_enabled=FALSE
    *._sort_elimination_cost_ratio=10
    Remove
    *.optimizer_features_enable='9.2.0'
    HTH

  • Oracle 10g performance is slow

    Dear Exports
    how we can imporve the Oracle 10g performance........we are upgrading from Oracle 8 to Oracle 10g. Windows platform. and using Oracle developer 6 as front end .
    thanks in advance

    Do you have statistics gathered on the tables in the 8i database? Can you post the explain plan for the query in both databases?
    Since you know what SQL is having poor performance you can use TKPROF and SQL TRACE to see where your query is spending its time.
    Try the following:
    alter session set timed_statistics=true;
    alter session set max_dump_file_size=unlimited;
    alter session set tracefile_identifier='BAD_SQL';
    alter session set events '10046 trace name context forever, level 12';
    <insert sql with poor response time>
    disconnect
    Use the TKPROF utility on the file found in USER_DUMP_DEST that contains the string BAD_SQL.
    For information on how to interrupt the TKPROF output, see the following link.
    http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14211/sqltrace.htm

  • Oracle 10g on HP-UX, Terrible Poor Performance!!

    Hi All,
    I setup an Oracle 10g on HP-UX 11iv1. Server is a HP 9000, 4 CPUs (750
    MHZ). It is connected to Disk System 2405 (Virtual Array 7110). Fiber
    Channels are connected at 2 GB speed.
    I installed a cluster 10g database. First I installed CRS and after
    that I installed oracle database. ( I want to test clustered database
    with one instance)
    I installed every thing line by line as oracle document wrote.
    All the things, kernel parameters, patches, are like oracle wrote in
    its document.
    I installed Golden quality package June 2004.
    I increased shmmax to 2.3 G . My SGA is 1.7 G And change some other
    parameters as Sandy Gruver wrote in Best Practices for Oracle on HPUX.
    I used oracle new storage system called ASM for this case.
    When I put the system under the load, I was monitoring the system
    carefully.
    I started gmp. When we sent some quarries to database (It is not heavy
    load, I tested it with a Linux system on proliant ML570 without any
    problem), suddenly DISK section in gpm changed to red (critical ) I
    read the warning. It said "Disk bottleneck probability = 100%". I
    changed the output of disk report to "Report IO by Disk"
    "DISK%" was 100% and "RAW IO RT" was about 1000 for two disks ( This
    two disks dedicated for ASM). In this situation CPU idle time was 1% or
    2% for all the CPUs but load average was about 1. Performance is not
    acceptable at all ( In comparison with Oracle that installed on Linux).
    Glance reported Disk was in Critical situation.
    I think the problem is IO or something about Disks
    I used HP Disk System 2405. Fibber channels on both server side and
    Disk Array side are configured at 2 Gb and topologies are
    PTTOPT_FABRIC.
    Is it ok that RAW IO RT about 1000 for each LUN?
    Why Disk% in glance/report IO BY Disk/ was 100%?
    I found an error in STM logs about I/O.It said:
    Entry type: I/O error
    Product: Fiber Channel Interface
    Logger: td
    It logged this error about 12 times during the test.Any comment?
    Regards,
    Hasan

    Sorry, I have not a solution for your problem, but similar things happen on our installation on Solaris 5.8 with Oracle 10:
    I have a banking business solution from Windows/SQL Server 2000 to Sun Solaris/ORACLE 10g migrated. In the test environment everything was working fine. On the production system we have very poor DB performance. About 100 times slower than SQL Server 2000!
    Environment at Customer Server Side:
    Hardware: SUN Fire 4 CPU's, OS: Solaris 5.8, DB Oracle 8 and 10
    Data Storage: Em2
    DB access thru OCCI [Environment:OBJECT, Connection Pool, Create Connection]
    Depending from older applications it's necessary to run ORACLE 8 as well on the same Server. Since we have running the new solution, which is using ORACLE 10, the listener for ORACLE 8 is frequently gone (or by someone killed?). The performance of the whole ORACLE 10 Environment is very poor. As a result of my analyse I figured out that the process to create a connection to the connection pool takes up to 14 seconds. Now I am wondering if it a problem to run different ORACLE versions on the same Server? The Customer has installed/created the new ORACLE 10 DB with the same user account (oracle) as the older version. To run the new solution we have to change the ORACLE environment settings manually. All hints/suggestions to solve this problem are welcome. Thanks in advance.
    Anton

  • Frm-40505:ORACLE error: unable to perform query in oracle forms 10g

    Hi,
    I get error frm-40505:ORACLE error: unable to perform query on oracle form in 10g environment, but the same form works properly in 6i.
    Please let me know what do i need to do to correct this problem.
    Regards,
    Priya

    Hi everyone,
    I have block created on view V_LE_USID_1L (which gives the error frm-40505) . We don't need any updation on this block, so the property 'updateallowed' is set to 'NO'.
    To fix this error I modified 'Keymode' property, set it to 'updatable' from 'automatic'. This change solved the problem with frm-40505 but it leads one more problem.
    The datablock v_le_usid_1l allows user to enter the text (i.e. updated the field), when the data is saved, no message is shown. When the data is refreshed on the screen, the change done previously on the block will not be seen (this is because the block updateallowed is set to NO), how do we stop the fields of the block being editable?
    We don't want to go ahead with this solution as, we might find several similar screens nad its diff to modify each one of them individually. When they work properly in 6i, what it doesn't in 10g? does it require any registry setting?
    Regards,
    Priya

  • Oracle 10g vs Oracle 11g query performance

    Hi everyone,
    We are moving from Oracle 10g to Oracle 11g database.
    I have a query which in Oracle 1g takes 85 seconds to run, but when I run the same query in Oracle 11g database, it takes 635 seconds.
    I have confirmed that all indexes on tables involved are enabled.
    Does anyone have any pointers, what should I look into. I have compared explain plans and clearly they are different. Oracle 11g is taking a different approach than Oracle 1g.
    Thanks

    Pl post details of OS versions, exact database versions (to 4 digits) and init.ora parameters of the 10g and 11g databases. Have statistics been gathered after the upgrade ?
    For posting tuning requests, pl see these threads
    HOW TO: Post a SQL statement tuning request - template posting
    When your query takes too long ...
    Pl see if the SQL Performance Analyzer can help - MOS Doc 562899.1 (TESTING SQL PERFORMANCE IMPACT OF AN ORACLE 9i TO ORACLE DATABASE 10g RELEASE 2 UPGRADE WITH SQL PERFORMANCE ANALYZER)
    HTH
    Srini

  • Oracle RAC - Not getting performance(TPS) as we expect on insert/update

    Hi All,
    We got a problem while executing insert/update and delete queries with Oracle RAC system, we are not getting the TPS as we expected in Oracle RAC. The TPS of Oracle RAC (for insert/update and delete ) is less than as that of
    single oracle system.
    But while executing select queries, we are getting almost double TPS as that of Single Oracle System.
    We have done server side and client side load balancing.
    Can anyone knows to solve this strange behaviour? Shall we need to perform any other settings in ASM/ Oracle Nodes
    for better performance on insert/update and delete queries.
    The following is the Oracle RAC configuration
    OS & Hardware :Windows 2008 R2 , Core 2 Du0 2.66GHz , 4 GB
    Software : Oracle 11g 64 Bit R2 , Oracle Clusterware & ASM , Microsoft iSCSI initiator.
    Storage Simulation : Xeon 4GB , 240 GB ,Win 2008 R2, Microsoft iSCSI Traget
    Please help me to solve this. We are almost stuck with this situation.
    Thanks
    Roy

    Load Profile Per Second Per Transaction Per Exec Per Call
    ~~~~~~~~~~~~ ------------------ ----------------- ----------- -----------
    DB time(s): 48.3 0.3 0.26 0.10
    DB CPU(s): 0.1 0.0 0.00 0.00
    Redo size: 523,787.9 3,158.4
    Logical reads: 6,134.6 37.0
    Block changes: 3,247.1 19.6
    Physical reads: 3.5 0.0
    Physical writes: 50.7 0.3
    User calls: 497.6 3.0
    Parses: 182.0 1.1
    Hard parses: 0.1 0.0
    W/A MB processed: 0.1 0.0
    Logons: 0.1 0.0
    Executes: 184.0 1.1
    Rollbacks: 0.0 0.0
    Transactions: 165.8
    Instance Efficiency Indicators
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Buffer Nowait %: 93.74 Redo NoWait %: 99.96
    Buffer Hit %: 99.99 Optimal W/A Exec %: 100.00
    Library Hit %: 100.19 Soft Parse %: 99.96
    Execute to Parse %: 1.09 Latch Hit %: 99.63
    Parse CPU to Parse Elapsd %: 16.44 % Non-Parse CPU: 84.62
    Shared Pool Statistics Begin End
    Memory Usage %: 75.89 77.67
    % SQL with executions>1: 71.75 69.88
    % Memory for SQL w/exec>1: 75.63 71.38

  • Oracle 10g unable to insert yet prompt no error

    Hi all,
    I bumped into this strange case. I have my web app connect to oracle 10g. I got all driver and JDBC setup and coded correctly. Somehow, it won't insert into table when i execute insert statement. No exceptions thrown and yet no error. I'm still finding a way to overcome this strange problem. In the mean time, appreciate if anyone out there able to help me to figure out.
    I suspect the driver class is causing problem. But to me, it's just a standard bunch of code:
    Connection con = null;
    try {
    // Load the JDBC driver
    String driverName = "oracle.jdbc.driver.OracleDriver";
    Class.forName(driverName);
    // Create a connection to the database
    String serverName = "127.0.0.1";
    String portNumber = "1521";
    String sid = "orcl";
    String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
    String username = "ivan";
    String password = "admin123";
    con = DriverManager.getConnection(url, username, password);
    } catch (ClassNotFoundException e) {
    // Could not find the database driver
    } catch (SQLException e) {
    // Could not connect to the database
    return con;
    Thanks!
    Ivan Brogalis

    1 - The code posted, creates an SQL connection and returns it. There is no insert query ! Plz post the whole code.
    2 - Append this the catch block :
    catch (Exception e){
        e.printStackTrace();////////////////// USE THIS FOR THE OTHER CATCH BLOCKS TO HELPS U IDENTIFY THE PROBLEM
    }3 - Check whether the connection created is good : make s simple select like the following : String select = "Select sysdate from dual";4 - Check whether the user(name=ivan, password=admin123) has the SELECT/UPDATE rights.

Maybe you are looking for

  • Selection problem in JTextArea

    hi all i have a TextArea in which i have some coded charecters in a group of ten charactes i treet these ten characters as a single character ,so when i delete or insert these charactes all these charactes r deleted and no other character r inserted

  • A query

    I want to buy an ipod touch 5th generation but I have been researching them on the Internet and I discovered that people are having problems with the usb getting stuck in devices.  Is this a problem with the new ipod touch 5th generation?  has anyone

  • Workflow problem - keeping keywords while importing into Lightroom

    I am working tethered to a laptop, and need to put in keywords for each product I shoot. I do this in LIghtroom, and drag those images to an external drive. Then, I take the hard drive to my office desktop Powermac, and import these into my LIghtroom

  • Hyerlink open in separate window?

    Is there a way to trigger a hyperlink to open it's content in a separate window?

  • TCP( EXAM QUESTION ANYONE PLEASE CHECK IT ).

    Design a TCP server to provide the service exam service on the port 50601 .The server expect to read a message made of N bytes with the following structure: Byte 0: length(u8) Byte 1:command(u8) Byte 2...Byte(N-1): Data Bytes (u8) The first byte repr