Icon View Incident Report

Serious Serious
Reported By: Rob Frye
Reported On: 4/7/2011
For: Version 4.30 Build 3
# 3440 Large Transactions Can Slow Down Significantly with Small Record Sizes

Within ranges of record lengths, the updates to shorter records clearly perform worse than updates to longer records. This effect is most obvious in the record size range from 40 to 216 (but it repeats, with the next two ranges being from 224 to 472 and from 480 to 704). What I mean by this is that if you perform updates within a transaction to a table with a record size of 40, it will be much slower than if you perform the same number of updates to a table with a record size of 216. Within each size range, the longer the record is, the better it performs but when you pass into the next range performance plummets.

Here are some example timings, I just ran using 256,000 records -

size 40 - 2099 secs <-- Start of 1st range
size 64 - 1423 secs
size 96 - 904 secs
size 128 - 593 secs
size 216 - 138 secs <-- End of 1st range

size 224 - 937 secs <-- Start of 2nd range
size 256 - 767 secs
size 472 - 138 secs <-- End of 2nd range

The effect can be easily observed by just running something like the following in DBSYS (using a table with 100,000 or more records and no indexes) first with a record size of 40 then repeating with the record size padded up to 216.

start transaction;
update ATABLE set AFIELD = AFIELD;
commit;



Comments Comments
The problem was related to DBISAM spending way too much time trying to clear out buffer space when it wasn't possible to do because of the large number of modified buffers present in the buffer manager. Thus, much of the time was simply wasted execution time.


Resolution Resolution
Fixed Problem on 4/7/2011 in version 4.30 build 5


Products Affected Products Affected
DBISAM Additional Software and Utilities
DBISAM CLX Client-Server
DBISAM CLX Client-Server with Source
DBISAM CLX Standard
DBISAM CLX Standard with Source
DBISAM ODBC Client-Server
DBISAM ODBC Client-Server with Source
DBISAM ODBC Standard
DBISAM ODBC Standard with Source
DBISAM ODBC Trial
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source
DBISAM VCL Trial

Image