By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,940 Members | 611 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,940 IT Pros & Developers. It's quick & easy.

Inserting results of a recordset in Chunks

P: n/a
I use ADO.Recordsets constantly to query data from external sources
and append the results into tables in Access databases. A number of
the queries I deal with bring back in excess of 50,000 records and as
many as 700,000 records. It takes hours to sometimes to load the
results of one query using this method. I would rather avoid using the
"make table" method of appending a pass-through query to accomplish
this. I'm looking for a faster, more efficient way to append the
results of the recordsets into tables rather than appending each
record one at a time.

Is it possible to append the entire result of the SQL at one time or
in larger chunks to speed the process up? Or does someone have an
alternative solution that is more efficient?
Nov 13 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
On 11 Aug 2004 03:57:34 -0700, vb*@cox-internet.com (Chuck Reed)
wrote:

That is exactly what MakeTable or Append queries do. At least
logically. For example if you have a local table tblHere and a remote
table tblThere with the same fields layout, you only write:
DoCmd.RunSQL "Insert into tblHere Select * from tblThere"
The database engine will use the most economic way available to
satisfy that request.

Alternatives include:
* Leave the data where it is, link to those tables, and use them
directly.
* Try SQL Server as your main platform, and use BCP or DTS.

-Tom.

I use ADO.Recordsets constantly to query data from external sources
and append the results into tables in Access databases. A number of
the queries I deal with bring back in excess of 50,000 records and as
many as 700,000 records. It takes hours to sometimes to load the
results of one query using this method. I would rather avoid using the
"make table" method of appending a pass-through query to accomplish
this. I'm looking for a faster, more efficient way to append the
results of the recordsets into tables rather than appending each
record one at a time.

Is it possible to append the entire result of the SQL at one time or
in larger chunks to speed the process up? Or does someone have an
alternative solution that is more efficient?


Nov 13 '05 #2

P: n/a
I did leave some important information out of my question. Do to the
size of database I'm querying against, I'm using ODBCDirect to a
teradata platform to retrieve the particular records that I'm needing.
Since I do not have access to SQL Server, it looks like my only
alternative is to create a pass-through query dynamically via VBA and
then use a Make Table or Append query to insert the records to get the
optimum speed in loading the tables with the results of the ODBCDirect
query. If I don't get any other suggestions that I can implement, I
probably will have to pursue the Make Table/Append option.

Tom van Stiphout <no*************@cox.net> wrote in message news:<6g********************************@4ax.com>. ..
On 11 Aug 2004 03:57:34 -0700, vb*@cox-internet.com (Chuck Reed)
wrote:

That is exactly what MakeTable or Append queries do. At least
logically. For example if you have a local table tblHere and a remote
table tblThere with the same fields layout, you only write:
DoCmd.RunSQL "Insert into tblHere Select * from tblThere"
The database engine will use the most economic way available to
satisfy that request.

Alternatives include:
* Leave the data where it is, link to those tables, and use them
directly.
* Try SQL Server as your main platform, and use BCP or DTS.

-Tom.

I use ADO.Recordsets constantly to query data from external sources
and append the results into tables in Access databases. A number of
the queries I deal with bring back in excess of 50,000 records and as
many as 700,000 records. It takes hours to sometimes to load the
results of one query using this method. I would rather avoid using the
"make table" method of appending a pass-through query to accomplish
this. I'm looking for a faster, more efficient way to append the
results of the recordsets into tables rather than appending each
record one at a time.

Is it possible to append the entire result of the SQL at one time or
in larger chunks to speed the process up? Or does someone have an
alternative solution that is more efficient?

Nov 13 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.