I have a serious performance problem the first time a dialog is opened in my app. It takes more than 15 seconds, but the second time it opens very fast.
In order to figure out what is happening, I captured the number of rows in all dsi_xxx tables just before opening the dialog and right after the dialog is shown. The problem was in one detail table holding a large blob data of uploaded documents. It looks like when formspider first access any datasource it copies its entire contents (if there is no pagination) to the corresponding dsi_xxx table. In my case the
I am pretty sure that my performance problem is solved, but I'm still guessing. It would be very helpfull if the formspider team explains in an article how the datasources are filled and row processing is done.
asked 13 Oct '12, 10:58
I am sure other team members will also weigh in but here is my two cents:
There are several ways I can think of solving this issue: I suspect 2. and 3. combined will help you the most.
Preventing querying large amount of data is something you need to be careful about. This might happen even if you don't have a BLOB but a big table behind the datasource.
Several team members in the company suggested we default the Query on Initialize checkbox to unchecked. This would also cause problems especially for beginners because they'd be surprised if they bind a component to a datasource and not see any data when the applications starts.
Maybe we can do something in between and allow developers change the default for each application. I don't know yet. We'll see. We are open to suggestions.
Hope this helps.