AnsweredAssumed Answered

Need for speed in portal interacting (editing, creating, deleting) FM16

Question asked by FileKraft on Jul 21, 2017
Latest reply on Aug 2, 2017 by FileKraft

Spring cleaning mostly performance improvements intended applied on a file with 38 base tables, 250 TOs, 270 Layouts, 850 Scripts, 110 ValueLists, 700 Custom Functions.


The goal is to have acceptable speed currently slow only in sorted portals used for (transactional) data entry.

In other words: I have a solution which is slow if I add records in sorted portals where records are allowed to be created and Undo of all changes in the portal is provided. There are many predicates to manage conditional formatting within the portal to show changes of the data and grouping rows.

The related displayed table of the portal has almost 300 fields - mostly needed for reporting.


On my clean up list is the following:


1. Minimize TOG


2. remove fields - keep minimum of required fields


3. remaining fields: index only if used in critical finds - looking on appearing in SQL statements or frequently called reports - value index determined by TOG


4. remove unstored calculations if not required on generic reports - instead use place holder with empty global field on layout or use layout variables

maintained by On Record Load triggers or other scripting to update accordingly. (Place holders functioning as wannabe layout calculations)


5. use caching into global variables of a lot of data including security settings and for fast fetching within predicates of formatting conditions.


6. no ExecuteSQL on records touched or related tables or tables with many records.


7. script trigger escaping with flags to avoid unnecessary runs - fine tune with tab orders within portal row


8. use lean theme and remove all local formatting


9. use button bars to remove all old styled buttons


10. not sure about this - use slides instead of tab control


what else could there be done to make it faster?


11. maybe also removing all fields within portal by one repeating field because conditional formatting can be evaluated with caching

and following repetition don't need to re-evaluate the predicates.


Is there anything else to do to get better performance?


Thank you!