Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3239286
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T17:57:08+00:00 2026-05-17T17:57:08+00:00

I’m experiencing some terrible performance with reading data off the OracleDataReader object compared to

  • 0

I’m experiencing some terrible performance with reading data off the OracleDataReader object compared to MS SQL Server. It is almost 10 times slower, which is unacceptable.

Below is some sample test code that both tests use. What’s the most optimum way to read data from OracleDataReader, is there a better way than shown below?

I’m having hard time believing that ODP.Net can’t even compare to SqlClient.

UPDATE: I’ve narrowed down the problem to fetching of text fields. For some reason ODP.Net is terrible at this. Any ideas how to fix it?

void ReadData(System.Data.IDataReader dr, int maxRows)
 {
     ArrayList rows = new ArrayList(maxRows > 0 ? maxRows : 1000);

     object[] row;

     int rowsRead = 0;
     while (dr.Read() && ((maxRows == -1) || (rowsRead++ < maxRows)))
     {
         row = new object[dr.FieldCount];
         dr.GetValues(row);

         rows.Add(row);
     }
     rows.Clear();
 }

Note(s):

  • Tried experimenting with FetchSize, didn’t experience a big difference

  • Query run times aren’t the issue here, only the data retrieval.

  • The data structures on both databases are identical.

  • Tried DataAdapter/DataSet combo with similar results.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-17T17:57:09+00:00Added an answer on May 17, 2026 at 5:57 pm

    We have actually traced this issue down to the use of CLOB columns to store nvarchar(MAX) type of string data.

    Oracle has admitted that their OCI software has issues dealing with CLOBs. By default they try to retrieve the CLOB the same way they’d retrieve a very large BLOB. They setup pointers, try to do paging and etc. Of course, this default behavior kills performance when it comes to a regular ~200 char text field. You actually turn this behavior off by setting LOBFetchSize to -1. This way it’ll grab the contents of the CLOBs in one round trip. Then things start flying and you get very good performance.

    Even with this though we continued to have issues. We confirmed memory leaks and memory reference errors in the OCI software prior to version 11.2. But 11.2 seems to be working fine in both 32 and 64 bit scenarios.

    So setting the LOBFetchSize to -1 was the performance fixer here.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

No related questions found

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.