Using hints to improve performance

Hi I am trying to create table using the below stmt. I am giving the counts on the tables also.
It is taking 5-6 minutes to create the table. I am trying to improve its performance.
Are my hints correct? What is nested look?
Any suggestions.
Thanks.
create table dt_25_temp as
select /*+ index(dt,DT_25_IDX) index(cl, T_CL_CLIENT_ID_CL_ID_IDX1 ) index(ml,T_MAILING_IDX2) index (ms ,t_ms_pk) use_nl(dupe,master)*/
dt.id ,dt.l_id , dt.cl_id
, ml.ml_id
, ml.ml_u3
, ms.t_cd
, ml.ml_u1
, ml.ml_u2
, ml.ml_u4
, ml.ml_u5
from Dt_25 dt
, t_ml ml
, t_cl cl
, t_ms ms
where dt.cl_id = cl.id
and cl.ml_id = ml.id
and dt.ms_id = ms.id
and cl.client_id = 12345
and ml.client_id = 12345
select count(1) from t_cl--1576262 records
select count(1) from t_ml--280682
select count(1) from t_ms--10341585
select count(1) from dt_25--1092469 ( this is temporary table I create daily , it mave have 1000 to 1M records )
DT_25_IDX is on column ID
T_CL_CLIENT_ID_CL_ID_IDX1 is on client_id and id
T_ML_IDX2 on id,cl_id
t_ms_pk is on column id

user10405034 wrote:
Hi I am trying to create table using the below stmt. I am giving the counts on the tables also.
It is taking 5-6 minutes to create the table. I am trying to improve its performance.
Are my hints correct? What is nested look?
Any suggestions.First of all, why are you using hints? If you have representative statistics in place and you're using the cost based optimizer it should be able to come up with a reasonable plan by itself. If not, you need to find out why. You should use hints only as a last resort, if you know something about your data that the optimizer simply doesn't know and therefore can't recognize.
I wonder why you use the USE_NL hint if you're asking what a "nested look" (I assume you meant NESTED LOOP) is, suggesting that you don't know what this particular hint is about?
- Can you show us the output of EXPLAIN PLAN using DBMS_XPLAN.DISPLAY? Use the \ tag before and after to use proper formatting in fixed font- What 4-digit version (e.g. 10.2.0.4) of Oracle are you using?
- Given the fact that your DT_25 table might have significantly different sizes, the question is if the data from the other tables joined to will be restricted by the join or not. It would be possible that if your DT_25 table is small, a index access into the other tables might be faster, whereas if your DT_25 table is large and covers a lot of data from the other tables, a full table scan of those tables might be more appropriate.
- How restrictive are these filter predicates specified:
and cl.client_id = 12345
and ml.client_id = 12345
i.e. how many rows from the totals provided correspond to those predicates?
Regards,
Randolf
Oracle related stuff blog:
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/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Similar Messages

  • What would be a sensible way to setup my Gigabit network? Will using both NICs improve performance at all?

    Hi everyone,
    I work in a small  digital agency, we do some post production, animation and some web dev.
    I'm looking to improve slightly our networking setup as it is a little disorganised and not always as fast as it should be. In the long term we're looking at spending sensible money on faster centralised storage, fibre etc, but for another year or so I need to do something more affordable based around what we already have.
    In brief, we have currently one Mac Pro Da Vinci grading workstation with attached highspeed storage RAID, and four Mac Pro edit machines for Premiere/After Effects. There are also various other machines and NAS devices, printers etc.
    Currently everything is on one unmanaged Gigabit switch. Each edit machine has a 4 disk RAID set of SATA disks, two of which are in what used to be the SuperDrive bays before we took them out. There is an SSD for the boot drive, and then one empty slot for transfering data in and out on other disks etc. When a project is ready to grade it's moved over to the storage attached to the grading machine over the network. That all works fairly well for us at the moment.
    However, with increasing frequency we're now working on projects with a few animators and editors at once, working over the network on the same files rendering them to one or other Mac Pro machine. I was wondering whether there is any way to improve our network architecture to make this a little faster (I know that ultimately we need a more expensive multi user centralised storage system of some sort, but in the short term..).
    I was considering a couple of options-
    1. Create a content only network on one NIC of each Mac Pro, into a dedicated switch, with jumbo frames turned on identically configured across all machines. Then on the second NIC join them into the 'everything else' network so they can access printers, the Internet, the slower NAS admin shares etc.
    or
    2. Configure a virtual ethernet device on each Mac aggregating the two NICs together (is that LACP?), taking both ethernet lines into the switch, and also using that switch for every other device (but connected in the normal manner).
    Is either of those a sensible way to go? I understand that there isn't any speed increase over link aggregated NICs when only doing one transfer, but is there any performance benefit at all if the machine is getting different files from different machines simultaneously, or if two machines are rendering over the network to one?
    I currently have one unmanaged Netgear JGS516 switch and one TP Link SG1024DE half-smart switch (has some useful functions but not what you'd expect from a more expensive model). Happy to buy a different switch is there's more management to be done, though don't want to spend a huge amount at this moment.
    Any advice whatsoever gratefully received, I could be way off here
    Thanks all.

    Thanks Grant,
    My knowledge of Jumbo Frames is limited.
    A lot of what I know comes from here- http://www.smallnetbuilder.com/lanwan/lanwan-features/30201-need-to-know-jumbo-f rames-in-small-networks?start=3
    One suggestion in there is to separate Jumbo and non-Jumbo supporting devices so that there is no impact on speed.
    I don't know anything about store-and-forward, I'll have to read up.
    I'm the same about Full Duplex

  • Using TABLE() to improve performance... Am I on the right track?

    I have a situation where I read data into a set of collections (let's assume 10,000 records and an emp_no collection).
    I then process each record in a for loop. Based on conditions, a subsequent query is issued to one of two tables:
    For i in emp_no.first .. emp_no.last loop
    <<processing>>
    if <<some condition>> then
    select emp_age into age from tab_a where employee_number=emp_no(i);
    else
    select spouse_age into age from tab_b
    where employee_number=emp_no(i) and {other conditions};
    end if;
    age_array(i) := age;
    <<processing>>
    end loop;
    after the additional fields are retrieved, processing continues using the retrived data.
    <<additional processing>>
    At the end of the processing I want to update a table's records given the values calculated during processing
    ForAll i in emp_no.first .. emp_no.last
    Update retirement Set age := age_array(i) ......
    where employee_number = emp_no(i);
    I imagine the single select queries in the loop structure will cause a lot of context switches between PL/SQL and SQL which will significantly decrease performance.
    After some review of the Oraclewebsite I found the TABLE function. It appears I can use this to change my routine to a more efficient bulk processing structure. Something like:
    -- In the loop build a collection of emp_no's associated to each query
    For i in emp_no.first .. emp_no.last loop
    <<processing>>
    if emp_no(i) is even then
    tab_a_emp_no_array.extend;
    tab_a_emp_no_array(tab_a_emp_no_array.last) := emp_no(i);
    else
    tab_b_emp_no_array.extend;
    tab_b_emp_no_array(tab_a_emp_no_array.last) := emp_no(i);
    end if;
    <<processing>>
    end loop;
    --After the loop use a Select... Bulk Collect Into statement with a where condition that references the collection values
    Select emp_no, emp_age
    bulk collect into emp_no_a, age_a
    from tab_a
    where employee_number in (select column_value from table(tab_a_emp_no_array));
    Select emp_no, spouse_age
    bulk collect into emp_no_b, age_b
    from tab_b
    where employee_number in (select column_value from table(tab_b_emp_no_array));
    Using the emp_no_a and emp_no_b the age values can be reassociated with the correct employee for further processing.
    I HAVE THREE CONCERNS:
    1. Am I understanding and using the TABLE function correctly? I don't think "pipelined processing" would help in this situation, correct?
    2. I may end up with an IN clause that has thousands of elements. Will this perform poorly and eliminate any performance gains obtained from the bulk collect? Would "where exists (select 1 from table(tab_a_emp_no_array) where column_value=employee_number)" work any better?
    3. Is there a better way to solve this issue of optimizing performance when various tables are conditionally queried during a loop?
    I hope my issue is clear (obviously the code isn't accurate) and I thank you in advance for any insights!
    Peace,
    Larry

    No.
    I will repeat one of Tom Kytes' mantras here
    1 when you can do it in 1 SQL statement, you should do it in SQL
    2 When you can not do it in SQL, you should do it in PL/SQL
    3 When you can not do in in PL/SQL, you should do it in Java
    Which means: You should things non-procedurally as often as possible. Quite often people resort too early to 3GL strategies.
    update inside a loop raises a red flag, especially if there would have been a commit inside this loop. This means you are not only into slow-by-slow prtogramming, but also increases the possibility of ora-15555 errors.
    Sybrand Bakker
    Senior Oracle DBA

  • How to use hints in Obiee to increase performance

    Anybody please tell me how can we use hints to increase performance of ad hoc and dashboard reports in obiee

    Hi,
    Check this,
    http://www.howtoexam.com/index.php?option=com_content&view=article&id=75%3Ausing-hints-in-obiee-rpd-and-answers&catid=790%3Acomputers-and-software&Itemid=166
    Rgds,
    Dpka

  • Using DB Links - Improving SELECT query performance

    Hi there,
    I am using dblink in the following query:
    I would like to improve performance of the query by using hints as per described in the link: http://www.experts-exchange.com/Database/Oracle/9.x/Q_23640348.html. However, i am not sure how can i include this in my select query.
    Details are:
    Oracle - 9i Database Terminal Release .8
    DB Link: TCPROD
    Could someone please explain with an example how to use hints to get the query to select data on the remote database and then return the results to the target database?
    Many Thanks.
    SELECT ec.obid AS prObid,
                 ec.b2ProgramName AS program,
                 ec.projectName AS project,
                 ec.wbsID AS prNo,
                 ec.wbsName AS title,
                 ec.revision AS revision,
                 ec.superseded AS revisionSuperseded,
                 ec.lifeCycleState AS lifeCycleState,
                 ec.b2ChangeType AS type,
                 ec.b2Complexity AS subType,
                 ec.r1SsiCode AS ssi,
                 ec.b2disposition as disposition,
                 ec.wbsOriginator AS requestor,
                 ec.wbsAdministrator AS administrator,
                 ec.changepriority as priority,
                 ec.r1tsc as tsc,
                 ec.t1comments as tenixComments,
                 ec.b2securityclass as securityClassification,
                 ec.t1changesafety as safety,
                 ec.t1actionofficer as actionOfficer,
                 ec.t1changereason as changeReason,
                 ec.t1wbsextchangenumber as extChangeNo,
                 ec.creator as creator,
                 to_date(substr(ec.creationdate,
                                0,
                                instr(ec.creationdate, ':', 1, 3) - 1),
                         'YYYY/MM/DD-HH24:MI:SS') as creationdate,
                 to_date(ec.originatorassigndate, 'YYYY/MM/DD') as originatorassigndate,
                 zbd.description as description,
                 zbc.comments as comments
            FROM (SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM awdbt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM mart1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM mpsdt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM nondt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rnast1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rnlht1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rnolt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rzptt1m4.cmPrRpIt@TCPROD

    it's the tablename in the hint, not the column name
    something like
    SELECT ec.obid AS prObid,
                 ec.b2ProgramName AS program,
                 ec.projectName AS project,
                 ec.wbsID AS prNo,
                 ec.wbsName AS title,
                 ec.revision AS revision,
                 ec.superseded AS revisionSuperseded,
                 ec.lifeCycleState AS lifeCycleState,
                 ec.b2ChangeType AS type,
                 ec.b2Complexity AS subType,
                 ec.r1SsiCode AS ssi,
                 ec.b2disposition as disposition,
                 ec.wbsOriginator AS requestor,
                 ec.wbsAdministrator AS administrator,
                 ec.changepriority as priority,
                 ec.r1tsc as tsc,
                 ec.t1comments as tenixComments,
                 ec.b2securityclass as securityClassification,
                 ec.t1changesafety as safety,
                 ec.t1actionofficer as actionOfficer,
                 ec.t1changereason as changeReason,
                 ec.t1wbsextchangenumber as extChangeNo,
                 ec.creator as creator,
                 to_date(substr(ec.creationdate,
                                0,
                                instr(ec.creationdate, ':', 1, 3) - 1),
                         'YYYY/MM/DD-HH24:MI:SS') as creationdate,
                 to_date(ec.originatorassigndate, 'YYYY/MM/DD') as originatorassigndate
            FROM (SELECT /*+ DRIVING_SITE(awdbt1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM awdbt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT /*+ DRIVING_SITE(mart1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM mart1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT /*+ DRIVING_SITE(mpsdt1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM mpsdt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT /*+ DRIVING_SITE(nondt1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM nondt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT /*+ DRIVING_SITE(rnast1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rnast1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT /*+ DRIVING_SITE(rnlht1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rnlht1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT /*+ DRIVING_SITE(rnolt1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rnolt1m4.cmPrRpIt@TCPROD
                  UNION
                  SELECT /*+ DRIVING_SITE(rzptt1m4.cmPrRpIt) */ obid,
                         b2ProgramName,
                         projectName,
                         wbsID,
                         wbsName,
                         revision,
                         superseded,
                         lifeCycleState,
                         b2ChangeType,
                         b2Complexity,
                         r1SsiCode,
                         b2disposition,
                         wbsOriginator,
                         wbsAdministrator,
                         changepriority,
                         r1tsc,
                         t1comments,
                         b2securityclass,
                         t1changesafety,
                         t1actionofficer,
                         t1changereason,
                         t1wbsextchangenumber,
                         creator,
                         creationdate,
                         originatorassigndate
                    FROM rzptt1m4.cmPrRpIt@TCPROD) ec(not tested, of course)

  • Use of hints in query performance

    Hi
    Please let me know actual usage of hints in query tunging, how do we write hints of increase performnace.
    let me know below query will gives better performnce. if hints are not use query will degrade performance.
    SELECT /*+ ORDERED INDEX (b, jl_br_balances_n1) USE_NL (j b)
    USE_NL (glcc glf) USE_MERGE (gp gsb) */
    b.application_id ,
    b.set_of_books_id ,
    b.personnel_id,
    p.vendor_id Personnel,
    p.segment1 PersonnelNumber,
    p.vendor_name Name
    FROM jl_br_journals j,
    jl_br_balances b,
    gl_code_combinations glcc,
    fnd_flex_values_vl glf,
    gl_periods gp,
    gl_sets_of_books gsb,
    po_vendors p

    942919 wrote:
    Please let me know actual usage of hints in query tunging, how do we write hints of increase performnace.The majority of hints would be used to diagnose a performance problem by identifying a better query plan and fixing the underlying reason that the optimizer did not select that plan automatically. Hints used in this way would be removed from the query after the cause of the performance problem was fixed.
    http://docs.oracle.com/cd/E11882_01/server.112/e16638/hintsref.htm#i8327
    Hints change the access paths and methods the optimizer chooses, so before using a hint, you need to understand what the optimizer does, what access methods are, when they are chosen, and what they are best used for.
    To do that you need to read the Performance Tuning Guide
    http://docs.oracle.com/cd/E11882_01/server.112/e16638/toc.htm
    At a minimum reading and understanding these sections -
    http://docs.oracle.com/cd/E11882_01/server.112/e16638/perf_overview.htm#i1006218
    http://docs.oracle.com/cd/E11882_01/server.112/e16638/optimops.htm#i21299
    http://docs.oracle.com/cd/E11882_01/server.112/e16638/ex_plan.htm#i19260
    http://docs.oracle.com/cd/E11882_01/server.112/e16638/stats.htm#i13546
    Then you should be able to use a hint safely.
    let me know below query will gives better performnce. if hints are not use query will degrade performance.Not true, hints change the performance of queries they can make them slower as well as faster. Here is an example of an index hint slowing down a query
    {message:id=1989089}

  • Performance Issie in SQL Statement Using Hints

    Hi,
    I am using Oracle version 10G.
    I am using a INSERT statement as:
    INSERT /*+ PARALLEL (TEST,4) */ INTO TEST(COL1,COL2,COL3) SELECT COL1,COL2,COL3 FROM DUMMY;
    For increasing the Performance I am using the above statement.
    Will the usage of Hints increase the Performance?
    Any help will be highly needful.
    Thanks and Regards

    user598986 wrote:
    I am using Oracle version 10G.
    I am using a INSERT statement as:
    INSERT /*+ PARALLEL (TEST,4) */ INTO TEST(COL1,COL2,COL3) SELECT COL1,COL2,COL3 FROM DUMMY;
    For increasing the Performance I am using the above statement.
    Will the usage of Hints increase the Performance?The way you're asking the question suggests that you're not sure what this particular hint is supposed to imply.
    Using this hint suggests that you want to take advantage of direct-path parallel DML operations. Note that you explicitly need to enable parallel DML in your session, it is disabled by default, because it has some significant implications and restrictions. You should think about parallelizing the query on DUMMY, too, if it is not marked as PARALLEL in the dictionary, because otherwise you're combining a parallel DML operation with a serial query which might not be that efficient.
    Note that there is no general answer to the question if this particular hint will actually increase the performance of the DML statement. There are many things to consider, among them are if your system scales reasonably with parallel operations and if the underlying object structure actually allows to benefit from the parallel operation. There are cases where a serial operation might be faster than a parallel operation.
    For more information about direct-path and parallel execution, its implications and restrictions, see the documentation:
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_9014.htm#i2163698
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28313/usingpe.htm#CACEJACE
    You can use the EXPLAIN PLAN and the DBMS_XPLAN.DISPLAY function to get the execution plan of your statement that shows you what kind of parallel operations the optimizer estimates to perform.
    Regards,
    Randolf
    Oracle related stuff blog:
    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/

  • Using Lightroom and Aperture, will a new ATI 5770/5870 vs. GT 120 improve performance?

    I have a MP (2009, 3.3 Nehalem Quad and 16GB RAM) and wanted to improve performance in APERTURE (see clock wheel processing all the time) with edits, also using Lightroom, and sometimes CS5. 
    Anyone with experience that can say upgrading from the GT120 would see a difference and how much approximately?
    Next, do I need to buy the 5870 or can I get the 5770 to work?
    I am assuming I have to remove the GT120 for the new card to fit?
    Thanks

    Terrible marketing. ALL ATI 5xxx work in ALL Mac Pro models. With 10.6.5 and later.
    It really should be yours to just check AMD and search out reviews that compare these to others. You didn't look at the specs of each or Barefeats? He has half a dozen benchmark tests, but the GT120 doesn't even show up or in the running on most.
    From AMD 5870 shows 2x the units -
    TeraScale 2 Unified Processing Architecture   
    1600 Stream Processing Units
    80 Texture Units
    128 Z/Stencil ROP Units
    32 Color ROP Units
    ATI Radeon™ HD 5870 graphics
    That should hold up well.
    Some are on the fence or don't want to pay $$
    All they or you (and you've been around for more than a day!) is go to Apple Store:
    ATI Radeon HD 5870 Graphics Upgrade Kit for Mac Pro (Mid 2010 or Early 2009)
    ATI Radeon HD 5870 Upgrade

  • Improve performance when using lots of left join

    when i run this query, it is taking *27 minutes* to execute. all keys have index. please help me to improve performance. i am using 11g.
    select distinct com.m1co as CO_ID,
    fsr.policy_number as POL_ID,
    com.M1AGNM as AGNCY_ID,
    cr.agent_code as AGT_ID,
    P.full_name as agent_name,
    ia.status_description as STS_CD,
    to_char(ia.bound_date, 'MM/DD/YYYY') as POL_INFC_DT,
    (fchgmm||'/'||fchgdd||'/'||fchgyy) as PAY_UP_DT ,
    (mcpdtm||'/'||mcpdtd||'/'||mcpdty) as pay_to_dt,
    (fexpmm||'/'||fexpdd||'/'||fexpyy) as MATURE_DT,
    ia.BILLING_FREQUENCY as PAY_MODE_CD,
    casc.MCPYCD as PAY_METHOD_CD,
    casc.MCPRMM as MODAL_PREM_AMT,
    casc.MCCRCD as POL_CUR,
    casc.MCNOPT as NFO_CD,
    cas.FINSTP as LINE_OF_BUSS,
    (MCPDTM||'/'||MCPDTD||'/'||MCPDTY) as BILL_TO_DT,
    com.M1LOCA as COLL_OFF,
    to_char(ia.bound_date, 'MM/DD/YYYY') as DELIVERY_DT,
    P.FULL_NAME as Serv_AGENT_NAME,
    casm.MWAGTN as SERV_AGT_CD,
    casc.MCNOPT as NFO_RULE,
    ia.STATUS_DESCRIPTION as POL_CSTAT_REASN_CD,
    SUBSTR(datesplit5(datesub),1,10) as APP_RECV_DT,
    to_char(ia.bound_date, 'MM/DD/YYYY') as ISSUE_DT,
    ia.SUM_ASSURED as CVG_FACE_AMT,
    p.IDENTITY_CARD_NUMBER as INSRD_CLI_CD
    FROM financial_services_role fsr
    left join channel_role cr on fsr.role_player_id=cr.role_player_id
    left join person p on (fsr.role_player_id=p.role_player_id and FSR.TYPE_DESCRIPTION IN ('AG','AGT'))
    left join ext_lsp_comagtm1 com on cr.agent_code=com.m1agno
    left join individual_agreement ia on fsr.policy_number =
    DECODE(ia.Business_Key_Contract_Number, NULL, ia.Business_Key_Policy_Number,ia.Business_Key_Contract_Number)
    left join EXT_LSP_CASCNTRM casc on (fsr.policy_number = casc.MCCNTR)
    left join ext_lsp_casbene cas on (fsr.policy_number = cas.fpolno and fbrcd = 0 )
    left join ext_lsp_casmwagt casm on (fsr.policy_number = casm.mwpoln and com.m1agnm = 'TAN')
    left join cdmtgt.EXT_LA_PTRNPF on (chdrnum = fsr.policy_number and
    BATCTRCDE = 'T600')
    WHERE com.m1co = 'IL';
    Thank you
    Edited by: 1000228 on Jun 5, 2013 10:36 AM

    HOW To Make TUNING request
    SQL and PL/SQL FAQ
    SELECT DISTINCT com.m1co                             AS CO_ID,
                    fsr.policy_number                    AS POL_ID,
                    com.m1agnm                           AS AGNCY_ID,
                    cr.agent_code                        AS AGT_ID,
                    ' '                                  AS AGNCY_ID_2,
                    ' '                                  AS AGT_ID_2,
                    ' '                                  AS AGT_ID_2_NAME,
                    P.full_name                          AS agent_name,
                    ia.status_description                AS STS_CD,
                    To_char(ia.bound_date, 'MM/DD/YYYY') AS POL_INFC_DT,
                    ( fchgmm
                      ||'/'
                      ||fchgdd
                      ||'/'
                      ||fchgyy )                         AS PAY_UP_DT,
                    ( mcpdtm
                      ||'/'
                      ||mcpdtd
                      ||'/'
                      ||mcpdty )                         AS pay_to_dt,
                    ( fexpmm
                      ||'/'
                      ||fexpdd
                      ||'/'
                      ||fexpyy )                         AS MATURE_DT,
                    ia.billing_frequency                 AS PAY_MODE_CD,
                    casc.mcpycd                          AS PAY_METHOD_CD,
                    casc.mcprmm                          AS MODAL_PREM_AMT,
                    casc.mccrcd                          AS POL_CUR,
                    casc.mcnopt                          AS NFO_CD,
                    cas.finstp                           AS LINE_OF_BUSS,
                    ' '                                  AS REGLR_OR_SCHEDL_TOPUP,
                    ' '                                  AS POLICY_LAPSED_DT,
                    ( mcpdtm
                      ||'/'
                      ||mcpdtd
                      ||'/'
                      ||mcpdty )                         AS BILL_TO_DT,
                    com.m1loca                           AS COLL_OFF,
                    To_char(ia.bound_date, 'MM/DD/YYYY') AS DELIVERY_DT,
                    P.full_name                          AS Serv_AGENT_NAME,
                    casm.mwagtn                          AS SERV_AGT_CD,
                    casc.mcnopt                          AS NFO_RULE,
                    ia.status_description                AS POL_CSTAT_REASN_CD,
                    Substr(Datesplit5(datesub), 1, 10)   AS APP_RECV_DT,
                    To_char(ia.bound_date, 'MM/DD/YYYY') AS ISSUE_DT,
                    ia.sum_assured                       AS CVG_FACE_AMT,
                    '0'                                  AS BASE_CVG_NUM,
                    p.identity_card_number               AS INSRD_CLI_CD
    FROM   financial_services_role fsr
           left join channel_role cr
                  ON fsr.role_player_id = cr.role_player_id
           left join person p
                  ON ( fsr.role_player_id = p.role_player_id
                       AND FSR.type_description IN ( 'AG', 'AGT' ) )
           left join ext_lsp_comagtm1 com
                  ON cr.agent_code = com.m1agno
           left join individual_agreement ia
                  ON fsr.policy_number = Decode(ia.business_key_contract_number,
                                         NULL,
           ia.business_key_policy_number,
                                         ia.business_key_contract_number)
           left join ext_lsp_cascntrm casc
                  ON ( fsr.policy_number = casc.mccntr )
           left join ext_lsp_casbene cas
                  ON ( fsr.policy_number = cas.fpolno
                       AND fbrcd = 0 )
           left join ext_lsp_casmwagt casm
                  ON ( fsr.policy_number = casm.mwpoln
                       AND com.m1agnm = 'TAN' )
           left join cdmtgt.ext_la_ptrnpf
                  ON ( chdrnum = fsr.policy_number
                       AND batctrcde = 'T600' )
    WHERE  com.m1co = 'IL';

  • Improving performance when using LineStripArray?

    I'm rendering approximately 680 LineStripArrays to represent an airport on a situation display. I read the data from a DXF file and I imagine I can strip that down by removing parts of the airport I don't want to show.
    However, performance is poor - I'm probably hitting 50fps when I'm barely rendering anything. Apart from not displaying some LineStripArrays, what can I do to improve performance? Should I merge some LineStripArrays? Is there another geometry class I should use?
    My code is:
                   // This array will hold the vertices.
                   float[] vertices = new float[count*3];
                   // Create the colour.
                   Color3f colour = new Color3f(1.0f,1.0f, 1.0f);
                   // iterate over all vertex of the polyline
                   for (int i = 0; i < count; i++) {                    
                        vertices[(i*3)+0] = (float)vertex.getX();
                        vertices[(i*3)+1] = (float)vertex.getY();
                        vertices[(i*3)+2] = (float)vertex.getZ();
                   }And then:
    layerData = new LineStripArray(count, LineArray.COORDINATES, strip_counts);
    layerData.setCoordinates(0, vertices);Thanks
    Edited by: BobCrivens on Sep 18, 2008 7:39 AM

    Yes, it will cause performance issues.  Whether you notice it or not may be a different story.
    LabVIEW drawing engine starts at the bottom layer and works its way up.  So, it has to redraw the image and then redraw the control when you update the control/indicator.
    It's been a while since I benchmarked this on a project, but in LabVIEW 6.1, I looked into why my tests ran so slow, and saw a 10-15% decrease in test time by removing the background decorations I used to make the window pretty.  If I didn't show the GUI feedback for the test at all (no GUI windows for each test), I saw a 30% decrease in test time.
    You will also find that better video cards will have a positive effect on this, as they redraw the screen faster.  In the same benchmark, I was able to outperform the early PXI controllers with a slower PC because NI was using a lower end video chip for their onboard graphics.

  • Improve performance using mass activities -step by step OSS 144461

    Hi evrybody,
    A customer report is handling a high volume of data and takes very long time.
    We would like to execute it using mass activity principle (OSS not 144461)
    Do you think if that can help us improving performance ?
    Can anybody explain what we have to do ?
    Thanks in advance
    Marie

    If you're trying to tune a custom report, I think the best place to start is by looking at the report code. Can you post it?
    Rob

  • What is the disadvantage of using hints in query

    hi all,
    i am report developer, in my project we were using hits in the query ... so that the query performance has improved ..
    my question is if we use hints in the query will it give any effects.. means to say instead of using hints we can make use of execution plan..
    what is the use of execution plan i don't know.. but i have an ideal about it .. if we change the execution plan then that will be use full i think
    please reply me,, if am wrong please correct me.. am not that much good at execution plan and hints in oracle..
    please tel me the difference between hints and execution plan and which one is better ?
    Thanks
    Raja

    Hint are used to bias the execution plan of a query. So there is no 'which is bettter'. Hints may be used to generate a different execution plan, but you can't predict how an execution plan looks like in the end. This decision is done by the db engine.
    It best to start without any hints and let the query optimizer do the work. For queries you feel run to slow you can try to give hints and see if your assumption is correct (when the execution time is faster with hints).
    On the other side your question is not related to jdev. You may ask the question in the {forum:id=75} forum
    Timo

  • Improve performance select in parameterized cursor.

    DECLARE
    CURSOR cur_inv_bal_ship_from(
    l_num_qty_multiplier gfstmr4_eop_transaction_type.
    inventory_multiplier_num%TYPE,
    l_str_inventory_type gfstmr9_eop_txn_rule.inventory_type_code%TYPE,
    l_str_type_code gfstmr9_eop_txn_rule.txn_type_code%TYPE)IS
    SELECT /*+ USE_NL(EPP PI EPC) */ epc.currency_code,
    SUM(ROUND(l_num_qty_multiplier * pi.inventory_qty * epc.cost_amt,2)) cost_amt
    FROM gfstm62_eop_plant_part epp,
    gfstm64_plant_inventory pi,
    gfstm60_eop_part_cost epc
    WHERE epp.gsdb_site_code = i_str_gsdb_site_code
    AND epp.end_of_period_date = i_dt_end_of_period_date
    AND pi.inventory_type_code = l_str_inventory_type
    AND pi.txn_type_code = l_str_type_code
    AND pi.gsdb_shipped_from_code = i_str_gsdb_site_code
    AND epc.rate_set_code = i_str_rate_set_code
    AND epc.financial_element_type_code = i_str_financial_element_code
    AND pi.plant_eop_part_sakey = epp.eop_plant_part_sakey
    AND pi.plant_inventory_sakey = epc.plant_inventory_sakey
    GROUP BY currency_code;
    BEGIN
    FOR l_num_index IN i_tab_inv_txn_rule.FIRST .. i_tab_inv_txn_rule.LAST
    LOOP
    --Checking for ship from flag equal to 'Y'
    IF i_tab_inv_txn_rule(l_num_index).ship_from_flag = g_con_y THEN
    --Looping through ship from cursor
    FOR l_rec_inv_bal_from IN cur_inv_bal_ship_from(
    i_tab_inv_txn_rule(l_num_index).qty_multiplier_num,
    i_tab_inv_txn_rule(l_num_index).inventory_type_code,
    i_tab_inv_txn_rule(l_num_index).txn_type_code)
    LOOP
    --Incrementing index value
    l_num_index1 := (l_num_index1 + 1);
    --Assigning cursor values to PLSQL table
    l_tab_inv_bal(l_num_index1).currency_code :=
    l_rec_inv_bal_from.currency_code;
    l_tab_inv_bal(l_num_index1).cost_amt :=
    l_rec_inv_bal_from.cost_amt;
    --Loop closing for ship from cursor
    END LOOP;
    END LOOP;
    END;
    The select query in the parameterized cursor taking long time. Below is the link in which i have shown the trace. Please let me know the way to improve performance.
    http://performancetuning1978.blogspot.com/p/performance-tuning.html
    thanks,
    Vinodh

    Hello,
    your performance-tuning picture doesn't say much. How do your tables look like, how many rows, oracle version.
    Why do you use nested-lööps as a hint?

  • FI-CA events to improve performance

    Hello experts,
    Does anybody use the FI-CA events to improve the extraction performance for datasources 0FC_OP_01 and 0FC_CI_01 (open and cleared items)?
    It seems that this specific exits associated to BW events have been developped especially to improve performance.
    Any documentation, guide should be appreciate.
    Thanks.
    Thibaud.

    Thanks to all for the replies
    @Sybrand
    Please answer first whether the column is stored in a separate lobsegment.
    No. Table,Index,LOB,LOB index uses the same TS. I missed adding this point( moving to separate TS) as part of table modifications.
    @Hemant
    There's a famous paper / blog post about CLOBs and Database Flashback. If I find it, I'll post the URL.
    Is this the one you are referring to
    http://laimisnd.wordpress.com/2011/03/25/lobs-and-flashback-database-performance/
    By moving the CLOB column to different block size , I will test the performance improvement it gives and will share the results.
    We dont need any data from this table. XML file contains details about finger prints and once the application server completes the job , XML data is deleted from this table.
    So no need of backup/recovery operations for this table. Client will be able to replay the transactions if any problem occurs.
    @Billy
    We are not performing XML parsing on DB side. Gets the XML data from client -> insert into table -> client selects from table -> Upon successful completion of the Job from client ,XML data gets deleted.
    Regarding binding of LOB from client side, will check on that side also to reduce round trips.
    By changing the blocksize, I can keep db_32K_cache_size=2G and keep this table in CACHE. If I directly put my table to CACHE, it will age out all other operation from buffer which makes things worse for us.
    This insert is part of transaction( Registration of a finger print) and this is the only statement taking time as of now compared to other statements in the transaction.
    Thanks,
    Arun

  • Improve performance of bdc call transaction

    Hi all,
    I am performing a batch update of tax codes in a BDC call transaction program. This particular code takes about 3 minutes to process 2,600 entries. I have tried almost everything but is there a way to improve / make it run faster?
    I have a feeling it has something to do with the form "do_transaction", but I really don't know anymore.
    Thank you in advance.
    Attached is the code:
    *& Report  ZFI_CHANGEWTAX
    *&  Description: Change Doctors Withholding Tax Code (EI)
    *&  Using BDC Call Transaction Method
    *&  Created by : mpena
    *&  Created on : 07/15/2009
    *&  Modification History
    *&  Seq  Changed on
    *&       Changed by
    *&  001   07/15/2009
    *&        mpena         Initial Development
    *&  002   07/20/2009
    *&        mpena         Logic modification
    *&                      Testing
    *&  003   07/20/2009
    *&        mpena         Call function parameter modification
    *&  004   07/22/2009
    *&        mpena         Report generation
    *&                      Performance improvements
    REPORT zfi_changewtax
           NO STANDARD PAGE HEADING
           MESSAGE-ID zfk02msg.
    TYPES: BEGIN OF t_tax,
           lifnr LIKE lfa1-lifnr,                "account number
           wt_withcd LIKE lfbw-wt_withcd,        "current tax code
           wt_withcd_new LIKE lfbw-wt_withcd,    "new tax code (left blank at default)
           END OF t_tax.
    DATA:  wa_tax TYPE t_tax,
           i_tax TYPE STANDARD TABLE OF t_tax,
           it_bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE,
           lin TYPE i.
    -------Selection Screen Design -
    SELECTION-SCREEN:
    SKIP 1,
    BEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.
    PARAMETERS: p_ktokk LIKE lfa1-ktokk DEFAULT 'DOCT' OBLIGATORY,
                p_bukrs LIKE lfbw-bukrs DEFAULT 'SL' OBLIGATORY,
                p_wtax LIKE lfbw-wt_withcd OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK blk1.
    INITIALIZATION.
      aaa = 'Change Tax Code to specified value'.
    TOP-OF-PAGE.
      WRITE:
      / 'Update of taxes successful on:', sy-datum, sy-uzeit,
      / 'Generated by:', sy-uname,
      / 'Company Code:', p_bukrs, 'Vendor Group:', p_ktokk.
      SKIP 1.
      ULINE.
      WRITE:
      / 'Account Number', 20 'Old Withholding Tax Code', 50 'New Withholding Tax Code'.
      ULINE.
    START-OF-SELECTION.
      SELECT lfa1~lifnr
             lfbw~wt_withcd
      INTO TABLE i_tax
      FROM lfa1 INNER JOIN lfbw
        ON lfa1lifnr = lfbwlifnr
        WHERE lfbw~bukrs EQ p_bukrs
        AND lfbw~witht EQ 'EI'.
      IF sy-subrc EQ 0.
        DESCRIBE TABLE i_tax LINES lin.
      ENDIF.
    Update i_tax with new value of wt_witchd, then display for comparison.
    After write: if old and new tax are the same, tax update was not successful for that specific account
    or inputted tax type is the same as the old one.
      LOOP AT i_tax INTO wa_tax.
        wa_tax-wt_withcd_new = p_wtax.
        MODIFY i_tax FROM wa_tax.
        WRITE:
        / wa_tax-lifnr,
        20 wa_tax-wt_withcd,
        50 wa_tax-wt_withcd_new.
        CLEAR wa_tax.
      ENDLOOP.
      PERFORM do_transaction USING p_bukrs p_wtax.
    *&      Form  do_transaction
         Extracted from ZFKO2 recording accessible in shdb.
    FORM do_transaction USING v_bukrs v_wtax.
      MESSAGE i000 WITH lin.
      LOOP AT i_tax INTO wa_tax.
        REFRESH it_bdcdata.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0106'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF02K-D0610'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RF02K-LIFNR'
                                      wa_tax-lifnr.
        PERFORM bdc_field       USING 'RF02K-BUKRS'
                                      v_bukrs.
        PERFORM bdc_field       USING 'RF02K-D0610'
                                      'X'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0610'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFBW-WT_WITHCD(01)'.
        PERFORM bdc_field       USING 'LFB1-QLAND'
                                      'PH'.
        PERFORM bdc_field       USING 'LFBW-WT_WITHCD(01)'
                                      v_wtax.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0610'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPDA'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB1-QLAND'.
        PERFORM bdc_field       USING 'LFB1-QLAND'
                                      'PH'.
        CALL TRANSACTION 'FK02' USING it_bdcdata
                                MODE   'N'
                                UPDATE 'A'.
      ENDLOOP.
      MESSAGE i001.
    ENDFORM.                    "do_transaction
           form for bdc dynpro
    FORM bdc_dynpro USING program
                          dynpro.
      it_bdcdata-program = program.
      it_bdcdata-dynpro = dynpro.
      it_bdcdata-dynbegin = 'X'.
      APPEND it_bdcdata.
      CLEAR it_bdcdata.
    ENDFORM.                    "bdc_dynpro
           form for bdc field
    FORM bdc_field  USING fnam
                          fval.
      it_bdcdata-fnam = fnam.
      it_bdcdata-fval = fval.
      APPEND it_bdcdata.
      CLEAR it_bdcdata.
    ENDFORM.                    "bdc_field

    You might want to try using a BAPI instead of a call transaction.   I believe "BAPI_VENDOR_SAVECHARVALREPLICA" will work for you.  Calling a BAPI is just like calling a function module.   After you call the bapi remember to commit it with the function module "BAPI_TRANSACTION_COMMIT".

Maybe you are looking for