Hi all,

I work in an environment which has most inventory and distribution data on
an AS400. The company also has an Oracle 8i database for client server apps
and web based business. For all intents and purposes the Oracle database is
a mirror of the 400. However, all data is entered on to the 400 and oracle
is kept in sync through a series of updates. My project is to start loading
product data for new sources directly to the AS400 (what has been a
primarily manual process). I started out writing the application in .Net and
would like to finish it that way.

Here's the problem:
1) Using Client Access 5.1, Ado.Net, and the oledb provider IBMDA400
directly hitting the 400 takes nearly 3 hours to process 28,000 records.
Unacceptably long.

This same scenario in terms of processing  except hitting the Oracle
database takes 14 minutes to process the same 28,000 records.  (MSDAORA as
the provider.)

If I use an Oracle Gateway (MSDAORA as the provider)  the same processing
takes 30 minutes.  I would think that going through a gateway would be
slower than going direct.

The question is how can I optimize performance going directly to the 400?
Although it is interesting that Oracle takes significantly less time it is
also not an option. The gateway is only for selects, not inserts. And, most
importantly, this project is dead on arrival if I can't get that processing
time down to a reasonable time.

Here's what I am doing?

        connectionString        "Provider=IBMDA400.DataSource.1;Data
Source=prod;User ID=*****;Password=******"
        cmdText         "SELECT title AS result  FROM tdmsdta01.dmm005 WHERE
itnbr = '009335021X   '"
                        try
                        {

                                conn = NewConnection();
                                OleDbCommand cmd = new OleDbCommand( sSql,
conn);
                                conn.Open();
                                dr = cmd.ExecuteReader();
                                if (dr.Read())
                                {
                                        objReturn = dr.GetValue(0);
                                }
                        }
                        catch

Any hints would be greatly appreciated!
Chris

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to