La domanda è semplice.
Devo elaborare diverse migliaia di righe facendo calcoli e vari filtri.
A livello di prestazioni e meglio mettere tutto in un array bidimensionale e poi scorrerlo e fare tutti i calcoli o meglio fare tante query annidate?
La domanda è semplice.
Devo elaborare diverse migliaia di righe facendo calcoli e vari filtri.
A livello di prestazioni e meglio mettere tutto in un array bidimensionale e poi scorrerlo e fare tutti i calcoli o meglio fare tante query annidate?
difficile da dire a priori.. secondo me puoi fare un misto dei due metodi, nel senso che puoi fare il maggior numero di elaborazioni possibili su database (tramite le formule sql o delle function ad esempio, se usi db che le supportano) in modo da estrarre i dati già pre-formattati.. e poi utilizzare delle strutture lato server (es. gli ADO recordset) e dei cicli per fare le elaborazioni successive.
Cacca!
il db che uso è sqlsrv
Spiego un po' meglio il problema magari qualcuno mi da un suggerimento
Ho una tabella fattureDettaglio dove sono riportati tutti i movimenti di vendita di diversi articoli
Ho una tabella per i GRUPPI 1, per i GRUPPI 2 e per i GRUPPI 3 (sono gruppi statistici)
Ho una tabella articoli dove ogni articolo ha 3 possibili gruppi a cui può appartenere
Es.
ART | GRUPPO1 | GRUPPO 2 | GRUPPO 3
A | 001 | 001 | 002
B | 001 | 005 | 001
C | 003 | 002 |
D | 004 | 001 |
E | 001 | 006 | 003
Io devo estrarre una statistica di vendita nel periodo con struttura ad albero facendo dei raggruppamenti per vari gruppi statistici
- GRUPPO 1
-ART 1
-ART ..
-GRUPPO 2
-ART1
-ART..
-GRUPPO 3
-ART...
La pagina chiaramente me la so siluppare. Quello che vi chiedo è come procedereste voi..
Io ho fatto una cosa del genere:
HO FATTO UNA SQL Per i gruppi 1 nei movimenti e da qui con .GetRows mi sono estratto un array da dove poi ho fatto i miei calcoli.
Per estrarre una statistica di una settimana tempo di attesa 35 secondi
un mese 4 minuti
sei mesi Lasciamo perdere...
Le righe della tabella sono veramente molte..
Ogni 6 mesi circa 60000 movimenti
hai indicizzato bene le tabelle ? su sql server è fondamentale, se indicizzi bene le prestazioni decollano!!
Cacca!
Sono tabelle a cui mi connetto.. sono tabelle di un gestionale.. immagino che siano fatte come si deve!
trovo strano.. faccio query su tabelle da un milione di record e ci mette un batter di ciglia.. come la fai la query ?
Cacca!
Sto rifacendo la pagina incriminata tutta basata su query e non più su array.. poi ti faccio sapere la differenza di tempi..
Magari è l'array che appesantisce avendo così tante righe!