Kbase P89827: Why is find first slow in DataServer applications?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  19/09/2008 |
|
Status: Verified
GOAL:
Why is find first slow in DataServer applications?
GOAL:
Why should I avoid find in DataServer applications?
FACT(s) (Environment):
DataServers
All Supported Operating Systems
Progress 8.x
Progress 9.x
OpenEdge 10.x
DataServers
FIX:
Generally speaking, in DataServer application, you should always avoid find statement. Our DataServer developer used to say "find is evil". This is because
find statement is a progress database specific feature, there is no support for such in foreign data sources. In order to mimic progress behavior, we have to
design find to cach records/keys in advance, then walk through the cache. Once you do a find , the DataServer needs to hold on to the cursor since there is no
way to predict if there will be a FIND NEXT on the same index. If a program does a FIND FIRST, the DataServer also has to keep the cursor opened since there
might be a FIND NEXT (on the same index) afterwards. The same is also true for FIND LAST -- the DataServer keeps the cursor in case there is a FIND PREV.
This is why find performs slow in DataServer applications.