Hi, this is Matt at AppWorks, and today’s video is going to be about a speed issue that we’ve seen frequently, primarily with list views and basically with databases running slowly on hosted servers like FileMaker Cloud or AWS. These videos will be in two parts – Part 1 is going to help you describe the problem and diagnose it in your solution. Part 2 is going to be one solution that we’ve found really successful to address it and to greatly speed up a database.

What are we talking about? Here’s the thing – we’ve got a sample CRM database here with Company, Contacts and Invoices. The graph would look like this, where we have a relationship from company through the invoice and through the line item. We have a calculated field in the company table what I would call a deeply unstored calculation. Its unstored and you can’t make it look stored. This looks through the company to the invoice to the line item and adds up the total price. That, you’d think, would be a simple, fast calculation. It is pretty fast to calculate on just one record. If I flip through my different records in the database and look at invoices, I can pretty quickly add up one record at a time, there’s basically no delay whatsoever. What it comes down to is this – if you have a layout that has this field on it that summarizes everything.

When I do a search, I’ll search for all the ones in the state of Oregon and sort them by city. I get a spinning beach ball, and I get this Summarize field “Sum Invoiced” dialog box coming up that tells me its summarizing and adding all the data.

How do we diagnose this? If we take a look on our layout, we can see that the field is called Sum Invoiced. We can look at our graph and see that the field is a summary field that’s in a subsummary part on our layout. If I were to scroll from page to page on this, I can see that it can be pretty slow, especially when I get into areas, especially if it has to summarize by section or city. From page to page, I get the escape dialog or command period dialog, or the spinning beach ball. I get a lot of bad performance.

A simple way to fix this is to remove the field from the layout – think if you need the detail on the list, or is it good enough to just have it on the detail, or whether you really need it on the layout. This is the big thing. The second video that will talk about a second way to do this, which is a stored field. So, feel free to continue on to that. If not, happy diagnosing, and thanks for watching the video.