I am trying to insert data from MS Access (.mdb) file into SQL Server 2014 Standard edition. Each file contains 100 tables. I have more than three thousand files to be loaded into SQL Server. Out of the 100 tables, some are loaded to a common table and the rest of them to individual tables in SQL Server.
Currently it is doing using Microsoft Jet.4.0 through a front end loop over file list and then over table list. The process takes three to four days to be completed that is not efficient enough.
I want to make the maximum use of server resources and minimize the operation time. My server has 128GB RAM with 32 core processors in Active-Passive cluster environment. How can I insert all files in parallel or in any efficient approach?
What I have tried:
I have coded a multi threaded program to send insert requests to the SQL Server which I found sending multiple requests to the SQL Server at the same time but the SQL Server is processing those requests serially. As a consequence, there is no improvement of performance.
I tried SQL Server Agent Job, which demonstrates to be parallel, however it seems to be difficult to control to me.
If we calculate, one file takes 2 min lo be loaded and there are three thousand of them. So, six thousand minutes that is 4.16 day. Average file size is around 100 mb. I found no working method even after googling and testing every method I have found each day of last couple of the months.
Is there any suitable way to insert data efficiently?