[progress Communities] [progress Openedge Abl] Forum Post: Re: Bulk-copy Process Performance

  • Thread starter Thread starter Valeriy Bashkatov
  • Start date Start date
Status
Not open for further replies.
V

Valeriy Bashkatov

Guest
Hello guys! Thank you for your answers, it is very important for me. I understand that Pro2 is a powerful and flexible tool. From my side I also try to optimize the processes, but have not yet succeeded in this. In the near future I will try to test ASCII load also. Terry, I will be grateful for the sample template. Satya, What do you mean by "pro2 triggers must be compression triggers" - I should use template "tplt_repltrig_with_compression.p" for generate triggers? >each split counts as a separate dataserver license Yes I know, and if we succeed on the test environment, then the client will buy Pro2 Enterprise. I also found an interesting article Where is it said "Cause The slow performance is contributed to by the WAN as well as by committing one record at a time to Oracle. Resolution Use BUFFER-COPY to create records in Oracle after the records are created in the ABL temp-table. This way Oracle will commit all the temp-table records at once." I changed the standard code in this regard in the following way, but did not get an improvement, tell me what I did wrong? DEFINE TEMP-TABLE tbl_PERSON LIKE bisquitsql.PERSON. DEFINE BUFFER bfrSrcperson FOR bisquit.person. DEFINE BUFFER bfrCpyPERSON FOR bisquitsql.PERSON. DEFINE BUFFER bfrTgtPERSON FOR tbl_PERSON. DEFINE VARIABLE strRecordID AS CHARACTER NO-UNDO. DEFINE VARIABLE intRecordNum AS INTEGER NO-UNDO. DEFINE STREAM stmTableLog. OUTPUT STREAM stmTableLog TO VALUE("bprepl/repl_log/lmrbisquit_person.log") UNBUFFERED. PUT STREAM stmTableLog UNFORMATTED "Began Mass Replication on " STRING(TODAY,"99/99/99") " at " STRING(TIME,"HH:MM:SS") SKIP. FOR EACH bfrSrcperson NO-LOCK USE-INDEX class-code: ASSIGN strRecordID = (IF "NO" = "YES" THEN UPPER("bisquit") ELSE "") + STRING(ROWID(bfrSrcperson)) intRecordNum = intRecordNum + 1. CREATE bfrTgtPERSON. ASSIGN bfrTgtPERSON.prrowid = strRecordID. {bprepl/repl_inc/ibisquit_person.i} ASSIGN bfrTgtPERSON.Pro2SrcPDB = "bisquit" bfrTgtPERSON.pro2created = NOW bfrTgtPERSON.pro2modified = NOW NO-ERROR. IF intRecordNum MODULO 100000 EQ 0 THEN DO: FOR EACH bfrTgtPERSON NO-LOCK: BUFFER-COPY bfrTgtPERSON TO bfrCpyPERSON NO-ERROR. END. EMPTY TEMP-TABLE tbl_PERSON NO-ERROR. PUT STREAM stmTableLog UNFORMATTED "Processed " TRIM(STRING(intRecordNum,">>>,>>>,>>>,>>9")) " records so far. Time is " STRING(TIME,"HH:MM:SS") "." SKIP. END. END. PUT STREAM stmTableLog UNFORMATTED "Finished Mass Replication at " STRING(TIME,"HH:MM:SS") "." SKIP "Processed a total of " TRIM(STRING(intRecordNum,">>>,>>>,>>>,>>9")) " records." SKIP. OUTPUT STREAM stmTableLog CLOSE. RETURN.

Continue reading...
 
Status
Not open for further replies.
Back
Top