In the documentation on parallel evaluation, Performance View - Appian 21.4, it is mentioned that if multiple queries are in place, they may be evaluated in parallel. I'm noticing that this doesn't seem to be the case for a!queryRecordType(). Would it be a better practice to avoid a!queryRecordType for use of a!queryEntity in interfaces where parallel evaluation would help performance?
Can someone please confirm or chime in if they have more detail, here are my findings:
I set up an expression rule in the following manner (6 local variables all independent of each other, at any given time 3 of the other type are commented out). The queryRecord1 and queryEntity1 are equivalent other than the function being used to run the query:
Performance details indicate that the query records are not running in parallel, while the query entities are.
Query Record details (sum of percentages does not exceed 100% indicating no parallel evaluation):
Query Entity details (sum of percentages does exceed 100% indicating parallel evaluation):
Is this expected/known behavior?
Discussion posts and replies are publicly visible
Interesting observation. Are the records synced? If yes, I saw interesting behaviour in terms of runtime of individual queries. It feels like a lot of caching and optimisation is done internally. But that is all guesswork.
This particular recordType is not synced
OK. My expectation is that queryRecordType should also run in parallel. But in a case where I do not sync records, I would stay with queryEntity as all the nifty features of records only work when synced.