go to post Alexander Riemer · Feb 24, 2023 I just loaded your sample code in my Studio and compiled it. IMHO %RebuildIndices() should just work. How do you call it? A hint from me: We've reimplemented %PurgeIndices() as the generated version of ISC deletes the indices very ineffecient - line by line. Our version just kills the appropriate global tree.
go to post Alexander Riemer · Feb 24, 2023 Yes, we can rebuild indices by %BuildIndices(). To rebuild specific, named indices we use %PurgeIndices(<IndexList>) and %SQLBuildIndices(<IndexList>) I think, you have to delete the index definition in the class. For SQL storage it is IMHO sufficient to have the index definition in the storage. Just the IDKEY index has to be defined in the class.
go to post Alexander Riemer · Feb 23, 2023 I have many data mapped like this and Caché usually uses the indices. To get Caché to use mapped indices you have different options: Use appropriate data types. 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: Property bbb as %String(COLLATION="EXACT"); 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
go to post Alexander Riemer · Feb 20, 2023 Could you post your code and some sample global content you try to map, please?
go to post Alexander Riemer · Apr 30, 2020 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.
go to post Alexander Riemer · Apr 29, 2020 One more thought: Depending on the call structure of your methos/classmethods it's necessary to increase routine buffers too. In our case 128 MB was too less. We configure to 256 MB on all production systems and it runs flawless since.
go to post Alexander Riemer · Jun 5, 2018 We're running several Caché instances and had issues with this setting set to "No"! As we heavily rely on transactions, which need a working journal, we decided to set this switch to "Yes" on all systems and never had problems since then.
go to post Alexander Riemer · May 2, 2016 Renee, it should work. The syntax is OK. Are you sure "OTHERNAMESPACE" exists and someRoutine in this namespace too? Passing a variable by reference is OK too. Regards Alex
go to post Alexander Riemer · Dec 15, 2015 Hi Evgeny, impressive! Does a VT440 application run on it? It would give those dinasaur applications a new drive! ;-) Regards Alex