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 7429187
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T08:55:44+00:00 2026-05-29T08:55:44+00:00

I am seeing some significant performance differences between OracleBulkCopy (ODP.NET) and SQL*Loader when the

  • 0

I am seeing some significant performance differences between OracleBulkCopy (ODP.NET) and SQL*Loader when the Oracle server is on another machine.

I have a very basic table in Oracle with three columns (one BINARY_FLOAT, two NUMBER(18,0)). There are no primary keys, indexes, triggers, etc. It is used as a staging table to get bulk data into the DB.

SQL*Loader takes about 27 seconds to load 4.5 million rows into the table.

OracleBulkCopy takes about 10 minutes to load just 1 million rows.

OracleBulkCopy, according to the documentation, *”…uses a direct path load approach, which is similar to, but not the same as Oracle SQL*Loader.”* It might not be up there with SQL*Loader in terms of performance, but this difference is ridiculous.

After some basic analysis of the network traffic, I found the OracleBulkCopy was sending and receiving a huge number of small packets. I used Wireshark to compare the packets for each and found some interesting results.

SQL*Loader – after the initial connection handshaking – sends a series of 8 kilobyte packets (TNS protocol) and receives 60 byte ACKs in response.

OracleBulkCopy sends a series of 102 byte packets (TNS protocol) and receives a 133 byte packet (TNS protocol) in response. What the…!? It is like it is sending one row at a time!

With the OracleBulkCopy class, I am using a batch size of 100,000 and am using a custom IDataReader to read from a data file.

So, my questions are:

  • Has anyone ever seen this behaviour?

  • Does OracleBulkCopy actually perform as a bulk loading tool?

  • Is there something I need to configure to get it to work properly? (client/server settings, etc)

Any help is much appreciated.

  • 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-29T08:55:45+00:00Added an answer on May 29, 2026 at 8:55 am

    I received a response from Alex Keh, Oracle Product Manager, that Oracle “has noticed this issue as well. We’re evaluating how to fix this bug.”

    So in answer to my own questions, I guess OracleBulkCopy does not perform well as a bulk loading tool. At least not at the moment.

    I will be wrapping SQL*Loader as an alternate solution as there is no ETA on the bug fix.

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

Sidebar

Related Questions

I am seeing some odd behavior in SQL Server AVG calcuation. On manual calculation,
I'm seeing some different behavior between g++ and msvc around value initializing non-copyable objects.
Seeing some strange behavior, whereby connecting to Oracle database, and then calling external function,
I'm seeing some strange behavior when I run Rails server with rails s -e
I am seeing some performance issues with Core Text when it is run on
I am seeing some examples online where the @ is being used before server
Refactoring some code again. Seeing some of this in one of the ASP.NET pages:
I'm seeing some strange behavior in IE trying to call functions in another page
I'm seeing some strange behavior with respect to interactions between my preloader and main
Seeing some strange things; help is being solicited. I have a query, like so:

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.