Icon View Incident Report

Minor Minor
Reported By: Roy Lambert
Reported On: 6/14/2005
For: Version 4.21 Build 3
# 2081 Locates that Use a Case-Sensitive Optimized Filter to Perform Search are Slower than Necessary

I don't know if its just a subjective impression but Locate seems a lot slower in 4.21b3. I've tracked it down and its when there is a range set.

1. Use the provided table MandN
2. Set the index to ReverseDate (this is _BoxNo;_Parent;_Sent)
3. Set a range to eg SetRange([103],[103])
4. Try eg Locate_BoxNoNo;_MsgNo', varArrayOf([103, 7539]), []) (this is the primary index of the table)
5. The locate should take between 1.5 & 3 seconds


Comments Comments
The problem was caused by a special operator that DBISAM uses for locates not calculating the optimization costs correctly for the filter that was needed to execute the search. When a range is set, DBISAM must use a filter to satisfy the locate instead of a direct index search due to the fact that it cannot change the current index order because of the range.


Resolution Resolution
Fixed Problem on 6/20/2005 in version 4.21 build 5


Products Affected Products Affected
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source

Image