I have a complex report which resolves to 14 SQL queries in the data provider. I’m trying to test the impact of some volume increases which will only affect one data table - and consequently only a limited number of the SQL statements.
On a sample run the report takes ~45 minutes, and when I extracted the SQL statements and ran those separately they took a total of 10 minutes to run. So what I need help in understanding is where the extra 35 minutes for the report is spent. Is it just on synchronisation of the results and building the information in a way which is efficient for presentation? Or are there elements I’m missing?
The nature of the queries and volume increase means that this element shouldn’t be impacted (as data is grouped up to a higher level in the queries). Hence my need to be clear on where the bulk of this time is spent.
If I had 14 different reports then it wouldn’t be doing the same thing though. The report with 14 queries displays the results in a single table - i.e. all the results are linked and are displayed together in some form. So I would expect some synchronisation over head - the question is whether it is normal or possible to have a synchronisation overhead like this?
All results were included in the SQL Editor and the connection to the database was via the same user. Caching for the SQL run outside BO could be a potential reason. I’ll try re-running the queries.
I suppose it could also be a performance limitation on my laptop locally? Memory limitation causing the synchronisation? I’ll also re-run the report with just BO running.
Because it is all from one data provider I just get a single query execution time - 40 minutes - not all that helpful. So the report engine calculations are minimal.
As data is brought in there must be some work going on there to form the data cube. The number of rows so far does not go up anywhere near as quickly as the SQL query through PL/SQL Developer.
Pushed the Array Fetch Size up to 200 and the report run time has come down to 10m with the query time reported in BO at 8m. Thank you very much for your help and pointers - I’ve learned a lot.
I noticed the Array Fetch Size will not go above 200 - how is that restricted? I am connecting to an Oracle 10 Database. I took a look at the service defined in Net Manager - under Advanced in Address Configuration there are some Total Send/Receive Buffer sizes - both unset.