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)
2)codice:$sql = " SELECT " . " DISTINCT (OrdNo) AS OrdNo " . " FROM " . " tblLine " . " WHERE " . " tblEcisLine.OrderStatus = 'NEW'";
al'interno del while di questo recordset, vado a prendermi la testata dell'ordine e la ricopio
....insert testata ...codice:$sql = " SELECT " . " * " . " FROM " . " tblOrder " . " WHERE " . " OrdNo = '" . $recordset_ordine_nuovo->Fields['OrdNo']->Value . "'";
3)
sempre all'interno del while delle testate, recupero tutti i record della testata stessa, li processo e li ricopio
...processo / sistemazione ...codice:$sql = " SELECT " . " * " . " FROM " . " tblLine " . " WHERE " . " OrdNo = '" . $ord_no . "'";
....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

Rispondi quotando