Es mag auch noch etwas länger gedauert haben.
Die Stunde war nur ein Schätzwert, jedoch werden die Einträge im Protokoll mit der Zeit in immer kürzeren Abschnitten geschrieben (ohne Batch).
Es gibt insgesamt 15038 Aufrufe.
START Zeitstempel: 2016-07-06-17.09.07.079
END Zeitstempel: 2016-07-06-17.09.12.591
Was dann diesmal sogar ~5 Sekunden waren.
Hier mein Programmcode:

Code:
exec sql declare Kundecursor cursor for                        
            select Kfirma, KKunde                                       
            from Kunde;                                                
exec sql open Kundecursor;                                     
dow sqlcode = 0;                                              
  exec sql fetch Kundecursor into :DS_Kunde;              
                                                              
  if zon_Kunde = 0;                                      
    iter;                                                     
  endif;   
                                                   
  Prottext = ds_timestamp + ' BEGINN Anzahl der Auträge';     
  exec sql insert into ECPPROT (PROTOKOLL) VALUES(:Prottext); 
                                                              
  exec sql declare counter cursor for   
    select count(*) from (                      
       select Count(*)                           
       from auftrag                              
       where AKunde = :zon_Kunde and        
                AFirma = :zon_firma
       group by Aauftragsnummer)                          
as Ergebnis;                               
exec sql open counter;                     
exec sql fetch counter into :zon_Anzahl;     
exec sql close counter;          
                                                                
ds_timestamp = %char(%timestamp());                             
Prottext = ds_timestamp + ' ENDE Anzahl der Aufträge';          
exec sql insert into ECPPROT (PROTOKOLL) VALUES(:Prottext);     
                                                                
ds_timestamp = %char(%timestamp());                             
Prottext = ds_timestamp + ' BEGINN Letzer Auftrag';             
exec sql insert into ECPPROT (PROTOKOLL) VALUES(:Prottext);     
                                                                
exec sql declare Auftrag_cursor cursor for
            select EKunde, AKundenname, EFirma, EAuftragsnummer,   
                 EJahr, EMonat, ETAG                            
          from Eintrag                                             
          join (select AKundenname, AFirma, AAuftragsnummer      
          from Auftrag)                                             
          as Auft                                                  
          on EFirma = AFirma and                                   
              EAuftragsnummer = AAuftragsnummer                                                                 where EKunde = :zon_kunde                           

          group by EKunde, AKundenname,                                 
                       EFirma, EAuftragsnummer, EJahr, EMonat, ETag
          having sum(EMenge) > 0 and max(digits(EJahr) concat     
                                                          digits(EMonat) concat                       
                                                          digits(ETag)) =                           
             digits(EJahr) concat                       
             digits(EMonat) concat                       
             digits(ETag);                            
exec sql open Auftrag_cursor;                                     
exec sql fetch Auftrag_cursor into :ds_auftrag;                   
exec sql close Auftrag_cursor;                                    
                                                               
ds_timestamp = %char(%timestamp());                            
Prottext = ds_timestamp + ' ENDE Letzter Auftrag';             
exec sql insert into ECPPROT (PROTOKOLL) VALUES(:Prottext);    
                                                               
if ds_auftrag.zon_auftragsnummer <> 0;                                   
  exec sql insert into KundenSumme (HFirma, HKundennnummer, HKundenname,   
                               HAuftragsnummer, HAnzahl)    
                       values(:ds_auftrag.zon_firma,       
                                 :ds_auftrag.zon_Kundennummer,       
                                 :ds_auftrag.zon_Kundenname,       
                                 :ds_auftrag.zon_Auftragsnummer,       
                                 :zon_anzahl);                 
endif;                                                    
clear ds_auftrag;      
  clear zon_anzahl;              
  clear ds_kunde;         
enddo;
Es müssten in dem Submit nur die hier angesprochenen Dateien offen sein,
und manuell auch nicht viel mehr.

Ich hoffe ihr könnt damit mehr anfangen,
und vielen Dank schon einmal!