The only thing I have to add to the above post is to remove the triggers and see if the performance improves or not, that should be the quickest way to confirm if it is the triggers or something else as Qliksus mentioned, going to have to do some basic app troubleshooting on this one ruling things in or out to narrow the scope of the problem before trying to solve it.
Once a sheet is viewed either using the trigger or using sheet tab, we should be caching the view state such that the next time you hit it, it should come up very quickly, and if that is the case, the Qliksus was on the right track, either data model or expression related issues most likely...
To help users find verified answers, please do not forget to use the "Accept as Solution" button on any post(s) that helped you resolve your problem or question. I now work a compressed schedule, Tuesday, Wednesday and Thursday, so those will be the days I will reply to any follow-up posts.
Do you need all the data you are loading? First of all I only load the data I know I am gong to use, so if my expressions don't call for certain criteria, they are not loaded into the app.
For a lot of my expressions, I create flags for their criteria within the load script. This means that all of the work for the expressions is done in the script, and not on the report, this takes a nice load off the server.
Sorting is one of the larger hits on a page, if you have left every dimension and expression with a sort on, it slows down the object considerably, untick the sorting that isn't necessary.
If your dimensions and expressions contain references to multiple tables, then the more table you use, the slower the object. Consider denormalizing the data. Either grouping the data together if you don't need a granular level of detail, or joining the data into a single "view" so that there is less work in the app itself.
Even with huge datasets this should give you a response rate of less than 3 seconds, which I am always able to meet, even with many millions of records of financial data. I use 3 seconds because this is/was the cutoff that google used in SEO to say a website had a suitable response time, anything slower then people began to lose interest.
Hey, Please don't forget to add kudos, like or mark as a solution if my reply has helped you at all! 🙂