SQLBulkCopy o Bulk Insert

bulkinsert c# performance sql sqlbulkcopy

Domanda

Ho circa 6500 file per una somma di circa 17 GB di dati, e questa è la prima volta che ho dovuto spostare quella che chiamerei una grande quantità di dati. I dati si trovano su un'unità di rete, ma i singoli file sono relativamente piccoli (max 7 MB).

Sto scrivendo un programma in C # e mi chiedevo se avrei notato una differenza significativa nelle prestazioni se avessi usato BULK INSERT invece di SQLBulkCopy. La tabella sul server ha anche una colonna in più, quindi se uso BULK INSERT dovrò usare un file di formato e quindi eseguire un UPDATE per ogni riga.

Sono nuovo nei forum, quindi se c'è un modo migliore per fare questa domanda sentitevi liberi di menzionarlo.

Risposta accettata

Per test, BULK INSERT è molto più veloce. Dopo un'ora usando SQLBulkCopy, avevo circa un quarto dei miei dati e avevo finito di scrivere il metodo alternativo (e pranzare). Quando ho finito di scrivere questo post (~ 3 minuti), BULK INSERT era circa un terzo del percorso.

Per chi guarda questo come riferimento, vale anche la pena ricordare che il caricamento è più veloce senza una chiave primaria.

Va notato che una delle principali cause di questo potrebbe essere che il server era un computer significativamente più potente e che questa non è un'analisi dell'efficienza dell'algoritmo, tuttavia raccomanderei comunque di usare BULK INSERT, come media il server è probabilmente significativamente più veloce del computer desktop medio.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché