Hi,
I am trying to rewrite a piece of legacy code which inserts a number of records in a bulk to SQL server tables(Total number of lines is around 200000 across 15 tables). Currently it uses ADO query to insert multiple records one by one. If the number of records are too high then this process takes a lot of time.
I was trying to make it faster and came across FireDAC array DML and according to the documentation, inserting 100000 records can be done less than a second!
So I implemented it and in my development machine (where application and database resides) it improved a lot. From 8 minutes to less than a minute.
But when I tested it on a test environment where application and database resides on different machines connected by a network, performance is worse. (It was taking 10 minutes with ADO and with array DML it takes 15 minutes)
I can't figure it out why array DML insert is taking more time than normal record by record insert. Any ideas?
Delphi version: Delphi 10.4
SQL Server: 2017
SQL Driver: ODBC DRIVER 17 FOR SQL SERVER
Kind regards,
Soji.