Within SQL Server Integration Services (SSIS) there is the ability to setup a connection to a flat file that can hold millions of records and have that data pushed to a SQL DB. Furthermore, this process can be called from a C# app by referencing and using the Microsoft.SqlServer.Dts.Runtime namespace.
Would a flat file with millions of records best be ran with SSIS, or would the collective "you" prefer a c# app with multiple worker threads(one to read and add the row to variable, one to write from that variable to the DB), and a "mother" class that manages those threads? (the dev box has two cpu's)
I have seen this data (sql team blog) stating that for a flat file with a million lines, SSIS is the fastest:
- SSIS - FastParse ON = 7322 ms
- SSIS - FastParse OFF = 8387 ms
- Bulk Insert = 10534 ms
- OpenRowset = 10687 ms
- BCP = 14922 ms
What are your thoughts?