I inherited a monster program.  It's 800 physical lines of code, separated like 
this:

100 lines of pre-processing code before we set a cursor

600 lines of code that are within a DECLARE CURSOR that processes 40,000 
records.  We cannot use a "while" loop because it never completed, so we use a 
"goto / label" structure to move around, and it always completes fine.

100 lines of post-cursor code.


I am trying to speed up this cursor as it now takes hours to process.  There 
are no "run" statements within this program, no printing of reports other than 
post-cursor.

Within that cursor loop, there are many "goto" statements to move around within 
that cursor loop.  
My assumption:  when the program hits a "goto" command, it must run through 
every line of code, one line at a time, to find the "label".  It would go all 
the way to the end of the program, and if it cannot find the label, it then 
goes back up to line 1 of the program and scans every line until it finally 
hits the label.   In this program, sometimes these labels are after the goto, 
sometimes they are "above" it.  

So question 1:  is my assumption correct?

If it is:  Let's say for readability that a line has been separated into 
multiple lines, such as this:
            SELECT agtcomm INTO vtestagtcomm +
              FROM agtcomm +
              WHERE agentno = .vagentno AND policy_no = .vpolicy_no +
              AND covcode = .vcovcode AND polyr = 1 AND agtcomm < 0 +
              AND paidtoagton IS NOT NULL


As it searches for a matching "label", is RBase evaluating 5 lines of code, one 
at a time?  Or is it "smart" enough to know it's one command and evaluates it 
just once?

So IOW: if I was to retype this command so that it takes just one really long 
line, or maybe just 2 lines, would it be "quicker" for RBase to search for a 
label?   I wouldn't normally be so anal about it, but when you're doing this 
40,000 times.....


Karen





-- 
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rbase-l+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to