Oracle data transfer rate determined by rows instead of data size Is there a setting in Oracle 11g that can throttle the rows/second being pulled from the db?

Our data loads from Oracle are really slow. It does not seem to matter whether its OPENQUERY, SSIS, or SQL Developer. I ran some tests and found that as the row number increases, the time to transfer increases in a linear fashion (100K rows in 90 seconds, 1M rows in 903 seconds). I then ran another test where the row count remained the same (500K) but the amount of data in each row increased with each trial. For this test, the time was almost flat (~480s), even though the amount of data increased from 5MB to 45MB over 10 trials.

The issue does not seem to be a throughput (VPN tunnel) problem since data speed increased with data/row.

So, my question is, what in Oracle would be causing this consistent 1000 rows/sec value, regardless of the amount of data in each row?

We don't manage the Oracle db, but I'm hoping to go back to the dbas with some ideas to speed up our month end loads.

Test 1: Increase Row Count, Maintain Data/Row


Test 2: Maintain Row Count, Increase Data Per Row
More likely limited by the fetch size, which is a client side setting.

For example: https://xzwang.wordpress.com/2013/06/20/oracle-ole-db-performance/

Quoting some content of the blog post:


  Batch size controls how many rows SSIS retrieves with each “batch”. 
  After retrieving all the rows in a batch, SSIS signals to Oracle that
  it is ready for another batch.   Of course, network latency is
  introduced during this signaling process.  Thus, decreasing the number
  of total batches also decreases the number of round-trips SSIS has to
  make.  The default batch size is only 100;  increasing this to a
  reasonable number should boost performance.


And:

https://scottadamsbi.wordpress.com/2010/11/02/sql-server-analysis-services-and-oracle-ole-db/


  If you are experiencing the same or similar issue, then you may wish
  to experiment with different settings for the FetchSize parameter on
  the Oracle OLE DB connection string e.g. Data Source=ORACLE.WORLD;User
  ID=User;FetchSize=100000;. The default setting is FetchSize=100. This
  means that the Oracle OLE DB provider will request and fetch 100 rows
  of data. SQL Server will then read 100 rows of data. Once all 100 rows
  have been read, the Oracle provider will request another 100 rows of
  data. This will continue untill all rows are read.