Icon View Incident Report

Serious Serious
Reported By: Allan Lee
Reported On: 3/22/2007
For: Version 1.01 Build 1
# 2277 SetRange on Large Tables is Very Slow

I've done some timing. When there are 500K records, the SetRange is about 0.6 sec in my PC (Core2Duo 1.66GHz). When ther are 1 million records, the time surges to 2 sec. I traced the code. The SetCursorRange in TEDBTable.ApplyRange is very fast. The problem seems to lie with the First function that follows the SetCursorRange. I further trace it and found that
TDataSet.First calls InternalFirst followed by GetNextRecord. InternalFirst (which is TEDBDataSet.InternalFirst) executes very fast but the GetNextRecord is very slow. It looks like GetNextRecord is doing some sequential searches.

Comments Comments
The submitter was entirely correct - internally the next and prior methods weren't respecting the ranges, causing a lot of unnecessary navigation.

Resolution Resolution
Fixed Problem on 3/25/2007 in version 1.02 build 1

Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial