Elaborazione file di testo

mercoledì 20 febbraio 2008 - 17.01

memmo77 Profilo | Expert

Salve, ho un enorme file di testo da "elaborare" e da inserire in un db. Che strategia mi consigliate di attuare? Su ogni record del file devo fare tot operazioni.
Io una procedura l'ho già fatta e per un file contenente circa 850.000 record mi impiega 40 minuti circa per fare questa elaborazione, il tutto finisce in un dataset che poi dovrei sparare al mio db .
Vorrei ridurre questi tempi, come fare?

Fatevi sotto con i consigli

Grazie a tutti

luigidibiasi Profilo | Guru


Il metodo che seguo io per risolvere questi tipi di problemi è questo:

load dell'intero file in memoria in una struttura adatta alle operazioni che devi fare
esecuzione delle operazioni su ogni riga
salvataggio nel db tramite ado

(io personalmente non uso i dataset)

come è strutturato il file?
quali operazioni devi svolgere?
Luigi Di Biasi

freeteo Profilo | Guru

ciao,
il file lo devi passare ad un db sql? perche' in questo caso ci sono metodi gia' pronti che fanno operazioni di questo tipo ("bulk operations") :
http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file

Cmq sia 850.000 record su un file sono tantissimi, e 40min nn sono un tempo accettabile per un'applicazione utente
Il fatto poi che tu usi un DataSet per tenerli in memoria mi viene anche da pensare che ci sara' un'utilizzo di questa "spropositato", ti conviene man mano che leggi, fare le query sql...cmq come ti dicevo operazioni "massive" come queste i db di solito hanno qualcosa di gia' dedicato...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

memmo77 Profilo | Expert

Grazie mille del consiglio. Immaginavo che da asp net 40 minuti per un'elaborazione di 850.000 record su file di testo erano poco ottimizzabili, mi chiedevo se potevano venirmi in aiuto i thread (cosa che sto provando e mi sta facendo impazzire). Comunque sto guardando il link che mi ha mandato e devo dire che potrebbe essermi moooolto utile. Faccio delle prove e ti faccio sapere.

memmo77 Profilo | Expert

Per ora mi "accontento" della dritta di freeteo. Non immagini a quanto ho portato la mia elaborazione. Sono passato da 40 minuti a ben .... ..... ..... 8 minuti scarsi .
Il BULK INSERT mi è stato davvero molto utile.

Grazie mille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5