Hi to all,
in a recent discussion (How can I show only selectec data from a table with eSQL?) I learned that the "normal" usage of Filemaker can lead directly into performance problems. Meanwhile I also found and read a 30-page-document about the optimization of the performance of Filemaker "design_performance_fm13_de.pdf" found via FileMaker Pro 13: The Missing Manual—New from O'Reilly Media).
In my humble opinion this guide is a nice starter but counts too many pages for what it at the end really provides. There are more "hints" like "learn how the calculation engine works to increase your performance" instead of substantial material e.g. what I have to know about the calculation engine.
Now I fear that my previous approachs to build Filemaker solutions were totally wrong designed as I use portals to show data from related tables etc. I also filter "searches" through theses portals (in the above mentioned thread I was already advised better to use eSQL because of performance probs I will run into).
Out of the mentioned PDF-guide I learned that a portal that should only show a list of e.g. "company names" out of a table "Company" also loads ANY other information about all listed companies that is also in the table "Company" (like street, zip, country and in my case many other information). This can lead to heavy loads an slow down the solution.
Now my opening question: how should I design my solutions the bets way to maintain a high performance? Silly) ieas that came to my mind after the last readings:
- Shall I strip often used tables each into to parts - one with the often used fields in a search, the rest in a kind of a further information table? Like "Company Basiscs" and "Company information"? I do not like this idea at all because of doubeling the number of tables, increasing complexity and because I might not knoa which fields should go into the basic table and that my decisions might grow wrong after time.
- Shall I not offering "full" listings like "all companies" because so much information will be transferred? Instead show only companies if a search is started? I fear that there are cases when I need "all companies".
- Can I reduce the information transfered to a client while using an SQL-statement that only looks for a certain ID (e.g. SELECT id FROM companies THERE companyname LIKE '%search%' ") ? How can I show some more information (like city, country etc.) about each comany without loading every information of the listed companies? I recently found an example for Master-Detail-Layouts (http://www.modularfilemaker.org/module/masterdetail-2-0/)" but am not sure that I already understand everything.
MaybeI wrote a bit too much but I would love to give you a good picture where I stand now - and would also love to learn as much as possible without stumble from each piece of knowldege to the next.
Thanks too all,