sql-serveroracle-databasessisetl

Optimizing OLE DB Destination for Fast load from Oracle to SQL Server for SSIS


I'm working with a SSIS package for importing from an Oracle Table to an SQL Server Table. for this in between I had to put a data conversion.

enter image description here the OLE DB Source is retrieving the complete Table, then being converted by the data conversion and then sent to the OLE DB Destination with current setup

enter image description here

now, the table I'm trying to import has around 7.3 Million records with 53 columns.

I need to know how can I setup (or what changes should do to current setup) to speed up as much as possible this process.

This package is going to run scheduled as a job in the SQL server agent.

In the last run inserted 78k records in 15 minutes. at this pace is too slow.

I believe I have to tune setting with the "rows per batch" and "maximum insert commit size" but looking around I haven't found information about what settings should work, and I've tried different settings here, not finding actual difference between them.

UPDATE: After a bit more test, the delay is from getting records from Oracle, not to insert them into SQL server. I need to check on how can I improve this


Solution

  • I think that the main problem is not loading data into SQL Server, check the OLE DB provider you are using to extract data from Oracle.

    There are many suggestions you can go with:

    1. Use Attunity connectors which are the fastest one available
    2. Make sure you are not using the old Microsoft OLEDB Provider for Oracle (part of MDAC). Use the Oracle Provider for OLEDB (part of ODAC) instead
    3. If it didn't work, try using an ODBC connection / ODBC Source to read data from Oracle