• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 290
  • Last Modified:

VB5, Informix And The Need For Speed!

Afternoon,

Given that an Informix (7.1) Database is keyed and indexed
properly what data access method (Linked MS Access tables,
access jet, ODBC, RPC, others) will provide the quickest
return of data?

Currently I am converting an application from VB/MS Access
to VB/Informix.  I am using ODBCDirect to retrieve data and
for the most part I am not using bound controls.  An example
is retrieving a list of users (~2000 rows) to populate an
unbound combo box via a snapshot recordset.  I am not pleased with the time it takes to perform this process (~10-15 seconds for each and 3 reside on this form).  Or
is it a case where I need to use alternative pick lists?
In this case something other than a combo box?

Thanks for your assistance.

Sincerely,
Slow Hand
box
0
PhilCorInc
Asked:
PhilCorInc
  • 2
  • 2
  • 2
  • +1
1 Solution
 
amebaCommented:
Check my code in:
http://www.experts-exchange.com/Q.10116670

It uses GetRows, this can be even faster when using chunks of e.g. 30 rows.
0
 
cuatogCommented:
PhilCorInc,

I recommend that you use INFORMIX Data Director for VB5.

Also Check your INFORMIX Database tables indexes.

cuatog - OSPC

0
 
cuatogCommented:
for PhilCorInc


prior to INFORMIX Data Director for VB5, im using also ODBC to connect to INFORMIX Database and I encounter the same problem as you.

cuatog - OSPC Philippines

0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
nop08642Commented:
The fastest ways to Access remote DataBases, appart from proprietary drivers (I don't know which ones exist for Informix) are ODBC+RDO or ADO using an OLEDB Provider (I don't know if there's one allready for informix, but check that in www.microsoft.com/data).
There is also a big difference in performance whether you use client or server side cursors, and the type of cursors.
If you only want to collect data for a Combo box use Server Side, forward only Cursors). after that also use getrows as ameba has allready told you.

0
 
PhilCorIncAuthor Commented:
nop08642's solution of forward scrolling cursor & getrows decreased the time by 4-6 secs but I want to get the response time down into the 1-2 second range.  Unless I get and/or find a better method I am going to use nop08642's proposed answer.  I give nop08642's a B!
0
 
amebaCommented:
I would give A to anyone who can speed up my code.

Can you show your code? Maybe someone can speed it up further.
E.g. using chunks can be 10-30% faster then simple GetRow.
0
 
nop08642Commented:
Hi PhilCorInc,
I have another Idea that you can try to speed things up, wich is to use assincronous recordsets. Like this you be able to load the form, and only fill the combos when the selects are finished. Like this the time to the user seems top be slower.
regards
0

Featured Post

Prep for the ITIL® Foundation Certification Exam

December’s Course of the Month is now available! Enroll to learn ITIL® Foundation best practices for delivering IT services effectively and efficiently.

  • 2
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now