6 Replies - 385 Views - Last Post: 06 February 2012 - 12:17 AM Rate Topic: -----

Topic Sponsor:

#1 whiteadi  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 01-February 12

vb6 oledb performance improvements

Posted 01 February 2012 - 04:32 AM

Hi,

I have a vb6 application that uses the OraOLEDB.Oracle provider, the oledb driver, to connect to an Oracle db.

Now the db is 11g. I am curious if there is any way to improve performance, maybe using some settings on the connection,

like using FetchSize or CacheType (now none of these are used), or using other provider?

Do not think on improving the queries, the code, because that is a different project / job and I am working on that together with a plsql developer.

Any ideas?

Thanks,
Adrian

Is This A Good Question/Topic? 0
  • +

Replies To: vb6 oledb performance improvements

#2 maj3091  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 211
  • View blog
  • Posts: 1,249
  • Joined: 26-March 09

Re: vb6 oledb performance improvements

Posted 01 February 2012 - 09:20 AM

I'm no expert in this area, but I think you will find that the FetchSize and CacheType are used but with default values, so if you don't specify them in the connectionstring, the defaults will be used.

This is from the documentation:

Quote

OraOLEDB-specific connection string attributes which affect the performance of the rowset are:

CacheType - specifies the type of caching used by the provider to store rowset data. OraOLEDB provides two caching mechanisms:

Memory - The provider stores all the rowset data in-memory. This caching mechanism provides better performance at the expense of higher memory utilization. The default is Memory.

File - The provider stores all the rowset data on disk. This caching mechanism limits the memory consumption at the expense of performance.
ChunkSize - This attribute specifies the size, in bytes, of the data in LONG and LONG RAW columns fetched and stored in the provider cache. Providing a high value for this attribute improves performance, but requires more memory to store the data in the rowset. Valid values are 1 to 65535. The default is 100.

FetchSize - specifies the number of rows the provider will fetch at a time (fetch array). It must be set appropriately depending on the data size and the response time of the network. If the value is set too high, this could result in more wait time during the execution of the query. If the value is set too low, this could result in many more round trips to the database. Valid values are 1 to 429,496,296. The default is 100.


Not sure if that helps in anyway or not.
Was This Post Helpful? 1
  • +
  • -

#3 whiteadi  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 01-February 12

Re: vb6 oledb performance improvements

Posted 02 February 2012 - 01:29 AM

View Postmaj3091, on 01 February 2012 - 09:20 AM, said:

I'm no expert in this area, but I think you will find that the FetchSize and CacheType are used but with default values, so if you don't specify them in the connectionstring, the defaults will be used.

This is from the documentation:

Quote

OraOLEDB-specific connection string attributes which affect the performance of the rowset are:

CacheType - specifies the type of caching used by the provider to store rowset data. OraOLEDB provides two caching mechanisms:

Memory - The provider stores all the rowset data in-memory. This caching mechanism provides better performance at the expense of higher memory utilization. The default is Memory.

File - The provider stores all the rowset data on disk. This caching mechanism limits the memory consumption at the expense of performance.
ChunkSize - This attribute specifies the size, in bytes, of the data in LONG and LONG RAW columns fetched and stored in the provider cache. Providing a high value for this attribute improves performance, but requires more memory to store the data in the rowset. Valid values are 1 to 65535. The default is 100.

FetchSize - specifies the number of rows the provider will fetch at a time (fetch array). It must be set appropriately depending on the data size and the response time of the network. If the value is set too high, this could result in more wait time during the execution of the query. If the value is set too low, this could result in many more round trips to the database. Valid values are 1 to 429,496,296. The default is 100.


Not sure if that helps in anyway or not.


Thanks for the info, I think a better provider cannot be used to connect from vb6 to Oracle and I just have to identify the most time consuming queries and see if it can be improved.
Was This Post Helpful? 0
  • +
  • -

#4 maj3091  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 211
  • View blog
  • Posts: 1,249
  • Joined: 26-March 09

Re: vb6 oledb performance improvements

Posted 02 February 2012 - 01:58 AM

I think you could get more performance increases from tuning your queries, if you haven't done so already.

Good luck either way and sorry I couldn't be of more assistance.
Was This Post Helpful? 0
  • +
  • -

#5 whiteadi  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 01-February 12

Re: vb6 oledb performance improvements

Posted 02 February 2012 - 03:10 AM

View Postmaj3091, on 02 February 2012 - 01:58 AM, said:

I think you could get more performance increases from tuning your queries, if you haven't done so already.

Good luck either way and sorry I couldn't be of more assistance.


No problem, thanks anyway.
Changing the queries will take some time is a big old application... :)
Cheers!
Was This Post Helpful? 0
  • +
  • -

#6 BobRodes  Icon User is offline

  • Your Friendly Local Curmudgeon
  • member icon

Reputation: 323
  • View blog
  • Posts: 1,950
  • Joined: 19-May 09

Re: vb6 oledb performance improvements

Posted 05 February 2012 - 10:37 AM

well, "big old applications" often have some pretty interesting SQL code. I put in a couple of hours on one recently and changed the execution time from about 3 minutes to about 15 seconds.
Was This Post Helpful? 0
  • +
  • -

#7 whiteadi  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 01-February 12

Re: vb6 oledb performance improvements

Posted 06 February 2012 - 12:17 AM

3 minutes! The users really had to wait then. I guess that makes them now very happy :)
Nice.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1