August 22, 2008 at 4:58 am
I'm selecting records via an OLE DB Source Data Flow Component from an DB2 DB. The select statement is in the OLE DB Component itself, I'm not selecting * and I have a where clause.
The issue is it takes about 20 minutes to just Pre-Execute this one container on my test sever, 10 GB ram and 4 processors.
The select will only pull back 100 records.
What is going on here and how can I speed it up?
Thanks
August 22, 2008 at 7:44 am
During the pre-execute, an OLEDB Source will try to cache the data, so this is when the SELECT is being run. I assume it does not really take this long to return the 100 records, but if it does, that is just what the pre-execute should do.
If it does not, I would first suspect the OLEDB driver is not performing well. If you have other OLEDB drivers, try a different one. If you have an ODBC driver, use a DataReader source and try the ODBC driver instead.
August 22, 2008 at 9:15 am
but the DataReader does not accept parameters
August 22, 2008 at 9:19 am
Use expressions to build a string for the SQL Source.
To start with, test to see if it is the provider - just hard-code in the SQL Statement that was taking a long time and see if the DataReader and a different provider solves the issue. If it does, then spend the time to make it work correctly, or complain to the company that makes the OLEDB provider you want to use.
August 22, 2008 at 9:23 am
it was the OLE DB that was making it slow, but DataReader Source only takes a string.
How do I use expressions here or a user variable?
August 22, 2008 at 9:51 am
just found it...
you set it via Expressions in its DataFlow Task
Viewing 6 posts - 1 through 5 (of 5 total)
You must be logged in to reply to this topic. Login to reply