Re: Inserts so slow using _Connection.Execute



You create INSERT statement on each iteration. Use prepared TADOCommand and
set command text to

insert into <yourtable> (<col1>, <col2>, <col3>) values (?, ?, ?)

and inside cycle set parameters. 50 000 records is not much.

For fastest inserts you may try bulk inserts using IRowsetFastLoad, this
feature is available in OLEDB Direct (http://www.oledbdirect.com), look
example SQLServer\Insert 1000000 rows, it inserts 1M rows (simple table) in
10 sec.

//------------------------------------------
Regards,
Vassiliev V. V.
http://www.managed-vcl.com - using .Net objects in Delphi for Win32 +
ADO.Net
http://www.oledbdirect.com - The fastest way to access MS SQL Server,
MS Jet (Access) and Interbase (through OLEDB)


"Steve" <hughessatmdnationwide.co.uk> ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ × ÎÏ×ÏÓÔÑÈ ÓÌÅÄÕÀÝÅÅ:
news:442a5bad$1@xxxxxxxxxxxxxxxxxxxxxxxxx
Can any one help here? I have the following job to do - which works but
sooo slow.
D7 - SQL 2K to different databases on 2 different servers.
I connect to the first server / database using _Recordset and _Connection
and pull back 50000 records in about .5 sec. This is fine. I then need to
do some work on this record set and then insert these records into a
different database on a different server. I use another _Connection to do
the following
While Not FromRecordSet.EOf do
begin
// process the records

end
Instr := 'Insert ['+tablename+'] values (' + stemp + ')';
ToConnection.Execute(Instr,recs,-1)
FromRecordSet.MoveNext
end;// While not eof
The insert takes about 30 seconds to do this with 50000 records. This is
way to slow. I could get the same performance using TTAbles. I want this
application to be a console app when it's finished so don't need any fancy
gui stuff.

any help would be appreciated.
regards
steve




.



Relevant Pages

  • Re: Inserts so slow using _Connection.Execute
    ... feature is available in OLEDB Direct, ... http://www.oledbdirect.com - The fastest way to access MS SQL Server, ... sooo slow. ...
    (borland.public.delphi.database.ado)
  • ANN: Using OLEDB Direct/OLEDB Express with MS SQL Server 2005
    ... You could download MS SQL Server 2005 beta from Microsoft. ... Use OLEDB Direct with MS SQL Server 2005: For MS SQL Server 2005 OLEDB ... //database and execute "CREATE DATABASE" SQL statement. ...
    (borland.public.delphi.thirdpartytools.general)
  • Re: Bulk Insert - Help
    ... Look at BULK INSERT in BOL - you will to execute this command with, ... example, TADOCommand. ... Or, if you generate data in program, try OLEDB Direct ... example on how to insert 1 million rows into simple table in MS SQL Server ...
    (borland.public.delphi.database.ado)
  • OLEDB Express 1.90 is released
    ... for MS SQL Server, MS Access, and MS Excel. ... It supports multiple transactions, multiple resultsets. ... This release is compiled with OLEDB Direct 1.90. ...
    (borland.public.delphi.thirdpartytools.general)