I have many data mapped like this and Caché usually uses the indices.

To get Caché to use mapped indices you have different options:

  1. Use appropriate data types.
  2. It looks like the collation of your indexed data is "exact". So please use one of these options  (or a combination of them) if the data type is %String:
    1. Property bbb as %String(COLLATION="EXACT");
    2. select * from loggpro.Indextest where %EXACT(bbb)=123

If all of your indexed data of type %String is collated "exact", it is usefull to subclass the %String datatype and set the COLLATION parameter there. Use the new datatype instead of %String afterwards.

Good luck!

Alex Riemer

We did some execution time measurements and had extremely high times in some nested calls compared between two machines. The calls were between some very big routines. The most extreme has its object code splitted to 46 ^rOBJ subnodes and has a total size of >1MB.

You realize the difference only in very long loops (as in the sample above) and deep nested calls to big routines (BTW: classes are compiled to routines too).

The measurements were made on a system with high load so the routine buffer was quickly invalidated by other processes.

I hope this helps.