Can someone help me understant what the databaseManager.saveData() function actually does.
I am trying to optimize my servoy solution as it is slowing down hugely as more and more users come on.
My solution is basically a large number of text and data input fields, and is therefore not complicated, but has 250 columns to be filled in with a large Text field of XHTM concatenating that and a PDF field.
As the user moves from tab to tab, I have issued the databaseManager.saveData() statement.
Question: does this write all the columns back to the database server, even if only one field has changed. i.e if i have a PDF column in the solution memory, then even though that column hasnt changed, it has to write it back over the internet.
If so, should I only be saving data when I go out of a record/case or hit complete, rather than when i click form tab to tab?
Many thanks, a better understanding of this may be the key to optimizing performance.
At how many users are you seeing a slowdown?
Which backend database are you using?
Servoy only saves changed records back to the database, it shouldn’t not send updates of non-changed columns.
There is an easy way to check this:
Go to admin page->performance data. Clear statistics. Run some updates. Check the page again. You’ll see every update statement and how much time it costs to execute.
I now have about 15-20 users online at any one time.
I think the slowdowns are a mixture of optimisation of the solution and the mysql indexes, but also issues related to my os x server.
Servoy still seems to gradually increase the CPU usage of Java, rising from 5-6% to about 20% over the course of a few days. Restarting the servoy server from the admin page bringd the java usage back down again immediately.
I am also looking at my initial view of the index the doctors see of cases on the system as these take 3-4 seconds to load, so i am trying to get familiar with composite indexes, whic i understand is what is needed in Mysql, as it can only use one index per query. Seeing people go back to the index page between each case then that could be quite expensive on other users.
I also think the 2G in my OS X Server may be too little, as some other processes like emond seem to be taking as lot of memory and a server reboot made a massive difference the other night, whilst I have never been a fan of the reboot your server every night philosophy, I am thinking a temporary fix would be to do that as it would restart servoy and also it seems to free up the memory from these process that i dont really understand.
I am not using the server for anything else but servoy/mysql.
I attach a screenshot showing the way the Java usage just creeps up until restart of servoy.
3.5.10 Tunnel is on.
[attachment=0]Picture 7.png[/attachment]