controller.find vs foundset.find

We get poor search peformance when a form is based on Oracle views. Some of the views use 50 columns. My question is if I were to use controller.loadRecords(sql) to load the form, how will the find work ? Currently we use a global controller.find. Is that the reason the search is slow ? Should I be using foundset.find instead? . What is the difference ? Will the related foundsets work correctly?

Hi,

Are you sure hat the the perfomance issue only exists in Servoy ?

I would suggest to do the same query in sqlplus and look at the performance there.

If it is poor performance there also, look at the query’s execution plan.

Also look at the primary key defined for this view in servoy. Is it a unique key ?

Also realize that if records are added to the tables that make up the view, Servoy does not see those until you restart
or do a “refresh from database” on the view.

Regards,

Hans

The view uses primary keys as the rowident. We’ve found that Oracle views with outer joins are inherently slow for large datasets. Thats why I am wondering if using the view definition’s sql in controller.loadRecords(sql) will make any difference in performance.

You can use the Performance Data section on the Server Admin page to see which queries are run and the time they took.

Rob