Perfetto, cioe', come controllare che una riga esista o meno io lo faccio direttamente con la chiave primaria della tabella, che sara' contenuta anche nel file excel, il mio era piu' un problema teorico, cioe' spendo piu' risorse a tirarmi fuori con una "select chiave univoca from tabella" tutte le chiavi salvandole dentro ad un array e poi mi controllo l'array e poi vado a fare un match tra array delle chiavi del mio file e array delle chiavi della tabella (in tale modo saprei quali son prodotti nuovi (presenti nell'array del file ma non nella tabella) e quali prodotti vecchi (presenti in array tabella ma non array file)...oppure spendo meno risorse a farmi un array delle chiavi dell'excel su quello vado a farmi tante query al db quanti sono i prodotti (all'incirca si parla nell'ordine di grandezza delle migliaia), cosi' individuo i prodotti nuovi e li inserisco, per i prodotti vecchi invece sarei comunque costretto a tirarmi fuori una alla volta le chiavi dalla tabella (in questo caso con una query) e poi andrei a fare un controllo sull'array delle chiavi primarie del file, se non presente anche qua' ci sarebbe una cancellazione "virtuale" cosi' riuscirei comunque a mantenermi uno storico.
Effettivamente questa procedura dovrebbe girare una volta al mese (quindi non avrei problemi di "tempo"...pero' vorrei capire come renderla piu' performante visto che gli array pesano in memoria, ma le query mi pesano sulla risorsa seppur la connessione venga fatta una volta sola, a me hanno sempre insegnato che bisogna utilizzare il meno possibile le risorse esterne, pero' il db si trova nello stesso punto dove si trova lo script, quindi non ci sarebbero latenze dovute alla banda e quant'altro...MHA![]()

Rispondi quotando