Ciao,
in una applicazione devo leggere dei records da access per processarli (qualche if per intenderci) e inserirli in una tabella mysql.

Lo scopo è questo:
leggere tutti gli ordini con lo status a new dal database fatto in access, processarli e scrivere la testata e il dettaglio nelle rispettive tabelle di mysql.

PRATICAMENTE:
1)
avendo lo status nelle righe dell'ordine come prima operazione mi estraggo tutti i codici ordine che hanno righe con status 'new' (faccio distinct)

codice:
    $sql = " SELECT " .
           "   DISTINCT (OrdNo) AS OrdNo " .
           " FROM " .
           "   tblLine " .
           " WHERE " . 
           "   tblEcisLine.OrderStatus = 'NEW'";
2)
al'interno del while di questo recordset, vado a prendermi la testata dell'ordine e la ricopio

codice:
        $sql = " SELECT " . 
               "   * " .
               " FROM " .
               "   tblOrder " . 
               " WHERE " .
               "   OrdNo = '" . $recordset_ordine_nuovo->Fields['OrdNo']->Value . "'";
....insert testata ...

3)
sempre all'interno del while delle testate, recupero tutti i record della testata stessa, li processo e li ricopio

codice:
                $sql = " SELECT " . 
                       "   * " .
                       " FROM " .
                       "   tblLine " . 
                       " WHERE " .
                       "   OrdNo = '" . $ord_no .  "'";
...processo / sistemazione ...

....insert dettaglio ....




Per 416 testate ordini nuovi e circa 3000 righe di dettaglio la prcedura ci impiega 4min e 22sec nel mio portatile (Dual Core, 4 GB, ecc, ecc).


Vorrei capire se è un tempo "corretto" o se si può migliorare in qualche modo.

Grazie
Ciao