In our reports we make an extensive use of filters and parameters and derived actions from one object on others.
It works fine in terms of response time if, code-wise, I create a subset of the whole main table. To give you an idea, this might reduce the row count from 3.5 millions to 200.000 as our main filter criteria is the plant.
We suffice with one unique report built with tables that live in caslibs that are accessible for all authorized report users. We control what they can see (plant bound) with the cas action accessControl.updSomeAcsTable. That works but it comes at the cost that the report is very slow sometimes.
So I wonder if partitioning the table by plant would be a promising solution to explore.