Rule "use-index" gives this warning whenever it finds
the USE-INDEX keyword in the source.
the risc:
If you specify USE-INDEX, Progress will not
automatically select an index for you. The automatic
index selector is believed to be very good.
Even if you manually picked the best index there is
still a risc: this index will still be used after the
database schema gets changed, even if another index would
be better at that time.
As I understand it (correct me if I am wrong) there
are two query engines in Progress: the "old" one (already existed in V6) and the "new" one which is highly
optimized for joins and supports multi-bracketing.
If you specify USE-INDEX you
force Progress to use the "old" query engine, so
performance may actually be worse than without the USE-INDEX
option. There are even folks who say that if Progress would
automatically pick a different index than you would,
then either you picked the wrong one or the indexes
in the database schema are not well-defined...
how to solve this:
Delete the USE-INDEX option, then compile and look at the
XREF output: Progress shows here which index (or
indexes) it has selected.
How to suppress these warnings:
You can put directive {&_proparse_ prolint-nowarn(use-index)} directly before
the statement.
See also: suppress warnings.