33216CLC,
Wheather Chip wants to review 1K + lines of code or not, yoy should figure out how to "Profile" the process. For this routine ad your programming future. There are some third party tools which your employer should be anxious for you to acquire (read Pay for) if they help getting the production back on track. Alternative approaches do exist, which you may attempt to implement yourself.
Of these, my favorite is a "TraceLog". In this, you basically add a table for the results. Here you can include whatever info you think appropiate. I ALWAYS include the routine Name and TimeStamp as a mininum. Next, Generate a GenericFunction which accepts the as args, the parameters you want logged. It will simply "post" a new record to the TraceLog each time it is called, with the info in the Arg list. Finally, in EVERY procedure, call this TracgLog function with the routine name, the time and any parameters you have identified.
When you run the process, every call to every routine should be logged to the table. Since it is just another table in the db, you can easily do any/all standard data manipulations on it to analyse the performance. A couple of the easiest:
Count by routine name. Will tell you where you keep going.
Largest time 'Gap' between calls. Tells you where you may be spending a LOT of time. (Note, that this "Gap" should represent the execution time of the 'parent' routine, however in MANY instances this may be less than the 1 second resoloution of gereral date/time, so several 'rotines may apear to have the same 'time'. ALso, if you have omitted the call to the tracelog function in a routine, it - obviously doesn't show up, and distorts the time.
MichaelRed
redmsp@erols.com
There is never time to do it right but there is always time to do it over