Re: Inserts so slow using _Connection.Execute
- From: "Steve Zimmelman" <skz@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 30 Mar 2006 08:23:43 -0500
You said you are getting all 50K records in about 0.5 seconds? Probably not.
What's happening is you are getting the first part of the record set, probably
much smaller than you think. As you iterate through the record set, ADO is
actually fetching more records. So you have 2 executions happening when you are
adding records. Fetching and Updating.
Using the Insert Into method might off-load the process to the back-end and
reduce the amount of band-width used by individual Insert statements for each
record.
-Steve-
"Steve" <hughessatmdnationwide.co.uk> wrote in message
news:442b9423$1@xxxxxxxxxxxxxxxxxxxxxxxxx
Actually my timer was wrong. the actual inserts are taking about 1 min.50
secs for the whole record set. This can not be the best that is possible.
steve
"Steve Zimmelman" <skz@xxxxxxxxxxxxxxxxxx> wrote in message
news:442aac28$1@xxxxxxxxxxxxxxxxxxxxxxxxx
Hi Steve,
I've never had to insert 50,000 records, so I can't speak to the time factor.
But I'm not sure if you are saying it takes 30 seconds per inserted record,
or 30 seconds for the entire 50,000? If it's taking 30 seconds to insert
50,000 records, that doesn't seem like it's too far off.
However, another approach might be to do something like:
// Get the source 50,000 records
Select *
From SourceDB..SourceTable
Where <SomeCondition>
// work on the records and save them back.
// Move them into the targe table
Insert Into OtherDB..TargetTable
Select * SourceDB..SourceTable
Where <SomeCondition>
This assumes that the same user name and password can be used to access both
DB's.
-Steve-
"Steve" <hughessatmdnationwide.co.uk> wrote in message
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
.
- Follow-Ups:
- Re: Inserts so slow using _Connection.Execute
- From: Steve
- Re: Inserts so slow using _Connection.Execute
- References:
- Inserts so slow using _Connection.Execute
- From: Steve
- Re: Inserts so slow using _Connection.Execute
- From: Steve Zimmelman
- Re: Inserts so slow using _Connection.Execute
- From: Steve
- Inserts so slow using _Connection.Execute
- Prev by Date: Re: Inserts so slow using _Connection.Execute
- Next by Date: Re: Inserts so slow using _Connection.Execute
- Previous by thread: Re: Inserts so slow using _Connection.Execute
- Next by thread: Re: Inserts so slow using _Connection.Execute
- Index(es):
Relevant Pages
|