SSIS Data Flow Task running out of memory

Jeffery Hill (6537) 126 Reputation points
2021-04-21T13:30:25.387+00:00

I am using a Data Flow task to transform data from an oracle database and store it in our SQL server database.
I'm using OLE DB for both source and destination with some data conversion in between.
I am getting the error message:
[OLE DB Source [55]] Error: The attempt to add a row to the Data Flow task buffer failed with error code 0x8007000E.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on OLE DB Source returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.

I have read all the performance tuning and experimented with all the different properties such as default buffer rows/sizes, but to no avail. I am trying to transform about 4 million rows. I have optimized the required columns and sizes. Always fails at about 410,000 rows. The total size per row is less than 5,000 characters.

Unfortunately increasing the memory is not an option at this time. This doesn't seem like an unordinary size and volume for SSIS to handle so can't understand why it should be failing. It fails from both Visual Studio and from SQL Server Agent.

What are my options to get this to work correctly? We are using Visual Studio 2017 and the SQL Server is 2014

SQL Server Integration Services
SQL Server Integration Services
A Microsoft platform for building enterprise-level data integration and data transformations solutions.
2,702 questions
0 comments No comments
{count} vote

Accepted answer
  1. Jeffery Hill (6537) 126 Reputation points
    2021-04-26T20:36:43.12+00:00

    Thanks Mona I'll give that a try. I still have the issue that the preview works but when I try and execute the Data Flow step I get errors:

    Validation has started
    [SSIS.Pipeline] Information: Validation phase is beginning.
    Progress: Validating - 0 percent complete
    Progress: Validating - 50 percent complete
    [Oracle Source [33]] Error: The AcquireConnection method call to the connection manager Oracle Connector 1 failed with error code 0x80004005. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
    [SSIS.Pipeline] Error: Oracle Source failed validation and returned error code 0x80004005.
    Progress: Validating - 100 percent complete
    [SSIS.Pipeline] Error: One or more component failed validation.
    Error: There were errors during task validation.

    Any ideas why?


2 additional answers

Sort by: Most helpful
  1. Yitzhak Khabinsky 26,586 Reputation points
    2021-04-21T14:47:04.9+00:00

    Hi @Jeffery Hill (6537) ,

    What OLEDB provider you are using for Oracle connection?

    It is better to use the following drivers:

    • Micrososft Attunity driver for Oracle. It requires SQL Server 2017 Enterprise Edition, or earlier.
    • Microsoft new Oracle connector. Though it requires SQL Server 2019, Enterprise Edition. And it doesn't require Oracle Client installation !!!

  2. Monalv-MSFT 5,926 Reputation points
    2021-04-22T02:55:08.77+00:00

    Hi @Jeffery Hill (6537) ,

    If AutoAdjustBufferSize is set to true, the engine data flow engine uses the calculated value as the buffer size, and the value of DefaultBufferSize is ignored.

    May I know if you try to set AutoAdjustBufferSize as True?

    Please refer to the following links:
    1.Adjust the Sizing of Buffers
    2.Improving data flow performance with SSIS AutoAdjustBufferSize property

    Best regards,
    Mona


    If the answer is helpful, please click "Accept Answer" and upvote it.

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.