Joy Conner
10th October 2008, 17:21
We are running with Informix db using level 2 drivers. We run update statistics everyday. Informix version 10.00.fc3w4.

Sometimes we need to read and update many records in a large file, for example, the item master. So we write a program that reads all the records and given certain conditions, a field is changed. The item number is displayed on the form while the program is running to indicate progress.

The longer the program runs, it seems to run slower. This is based on observing how fast the displayed item on the form changes.

What is bizarre about this is if I look at the table and move from one record to the next, not changing any data, the displayed item on the running program changes at a faster pace. I assume the program is running faster. If I stop clicking to the next record, the program slows down.

Can anyone explain this?

I began to notice this behavior after we migrated to the level 2 driver. Is there something we should do different?

_Ralph_
10th October 2008, 17:42
I have a few informations about DBs

What is bizarre about this is if I look at the table and move from one record to the next, not changing any data, the displayed item on the running program changes at a faster pace. I assume the program is running faster. If I stop clicking to the next record, the program slows down.

But this may happen when the commit.transaction() was not called yet.
This may cause some slowly on the process because the buffer is getting full of records.

My suggestion it's to create a count(if it nos exists yet) to commit the informations every 50 records...

hope it helps

günther
13th October 2008, 11:04
I have also recognized that behaviour some time ago (informix, but level 1). My workaround was to use commit.transaction() after say 100 writes.

Günther