You can use the performance analyzer to help improve app performance. This feature analyzes and provides recommendations to improve Quickbase performance when:
-
Running reports (called directly, via API, or from a table home page)
-
Displaying forms
-
Using form rules that run when a form is loaded
-
Performing searches
-
Viewing table home pages
-
Sending email notifications
-
Saving records
-
Exporting to a CSV file using the Save as a spreadsheet option
When enabled, users can access this feature by clicking Hi, (your name) > Analyze performance. They can start measuring the performance of their own actions for the next ten minutes and view an analysis of time spent calculating each filter, field, form element, notification, and so on.
The performance analyzer is not available in Internet Explorer.
To enable the performance analyzer as an app builder:
-
Select Settings.
-
Select App properties.
-
In Advanced Settings, under Performance options, click Show performance analyzer.
-
Click Save. A link to Analyze performance displays in the user dropdown:
Analyzing performance
If the administrator has enabled the performance analyzer for the app:
-
Select Analyze performance. A message appears indicating that Quickbase will track performance for the next 10 minutes.
-
Access the areas that you want to analyze; for example, open a report, access a form, conduct a search, save a record.
-
When you are finished, click Hi, (your name) > Get performance details.
If Get performance details (no details yet) displays, you have just started performance analysis and have not submitted a request, or your actions have taken place on pages, such as Settings, that are not currently monitored.)
Otherwise, the analysis displays. It includes the name, the time you accessed the page, and a history of the last 10 areas you have analyzed. -
Beginning with the most time-consuming category, view details about the request and recommendations for improving performance.
-
When you are done, click Stop analyzing performance.
Using analysis to improve performance
Depending upon the areas that you analyzed, different categories may display, along with the amount of time spent performing the action.
The time displayed does not include the time you may wait for the app to load or for other requests to be processed. It also doesn’t measure network latency or how long the browser spends rendering the page after the data is received.
On occasion, the time for a field may display as 0.0 seconds but show a percentage. This is due to rounding. A field that returns fast enough to round to 0.0 is not impacting system performance; you can ignore it.
Recommendations to improve performance within each category
-
Subtotals — calculate totals and averages for numeric fields in the report
Display column
-
Limit the number of columns returned
Display only the most important data required for the user to take effective action. -
Remove fields from the Default Columns list
If there are time-consuming fields in the Default Columns list, remove them.
Filtering
Filtering includes applying the initial filters (matching criteria), calculating the values of dynamic filters, and applying permissions.
To improve performance:
-
Evaluate AND conditions first
It is both easier to understand and faster to move the repeated condition out of each sub-clause and evaluate it first. Because it is an AND condition, if a record doesn’t match, that record doesn’t need to be considered again for the other conditions. -
Create formula fields for complex OR conditions
You can combine all the OR criteria into a formula field to reduce the number of filter criteria.
Other processing time
Other processing time may be correlated to the total amount of data on the page (number of records, number of columns) but is not directly tied to any particular field. You’ll see a greater percentage of Other processing time on shorter requests because Quickbase spends a fixed amount of time for every query; that amount of time is relatively small, but if the entire query happens very quickly, it may seem like a high percentage. Also, the performance analyzer itself adds processing time, as it starts and stops the timers and collects the statistics on each field.
Search
When you search from the navigation bar in your app, Quickbase looks for the search term in all searchable fields in the current table, or across the entire app.
To improve performance:
-
Create home page search widgets or Ask the User reports to allow end users to search for values in specific fields.
Users often use the search box as a way to navigate quickly to a particular record and would be better served by a more specific control. For example, if users are looking up products based on the SKU, they probably don’t want to see other records that happen to have that number included in the description. Having a widget on the home page that lets users search just as easily, but only in the most relevant fields, will be a better user experience. -
Only search on fields that are necessary.
For example, searching for fields like Record Owner and Lookup fields may not be helpful in a global search. You could improve performance by marking these as non-searchable in the field properties. This reduces the time that it takes to search the table. The fields can still be used in report criteria, but will not be included automatically in a search.
Sorting and grouping
Recommendations for sorting and grouping:
-
Filter the result set whenever possible
-
Sort by a field with few duplicated values
-
Sort by numeric fields rather than by text fields
-
Avoid sorting by fields that require calculations, such as summary fields or formulas
-
For API calls in which the sort order doesn’t matter, pass
<options>nosort</options>
Sorting
In this example, a report was returning 1,007,676 records, so the biggest time constraint was sorting all of them. Sorting requires looking at all the records, often multiple times. Additionally, if the field you’re sorting by includes duplicates, Quickbase looks at the default sort field to determine which one to show first. In this case, the field chosen to sort by, Milestone Code had only a few dozen different values, so there were a lot of duplicates and the sort had to use the Date Modified field frequently as a tie-breaker.
Sorting just by Date Modified improved the performance (from 95 seconds to 51), but sorting a result set that big is always going to take a long time. It is rarely useful to page through a million records, so it is both faster and a better user experience to filter a report.
For example, when this report is filtered to show only the last month’s records, the time to display the report is reduced dramatically (from 95 seconds to less than 20—a 79% improvement).
Grouping
In this example, almost all the time was spent calculating a custom column because the column used a complex formula based on a summary field of a table with custom permissions. Grouping by a simpler value (a multiple choice field, requiring no calculation) reduced the time from over 10 seconds to 1.6: an 84% improvement. If your business logic requires grouping by a complicated calculation, be aware of the cost, so that you can make an informed trade-off between functionality and performance.
Update results link
Use the update results link in the Performance Analyzer so you can quickly refresh the Performance Analyzer window to see new activities as you’re browsing Quickbase in your main window.
Subtotals
-
Uncheck the field properties for totals and averages on fields for which they are not required.
-
Consider removing the summary table. If there is a summary table on a table report, all the records in the report must be totaled and/or averaged on every page of the report, not just the final page. While this can be useful functionality, if a table report is slow because of subtotals, removing the summary table might help.
Saving a record
Quickbase performs a number of steps when saving a record. This includes sending email notifications, running webhooks, and redirecting to a new page (for example, displaying a newly added record or returning to a report.) If the most time-consuming category on the left:
-
is Display record name or the name of a report, then the save action itself is not a problem. Instead, you should tune the form or report that is displayed after the save.
-
is not Display record name, then the save action may be slow, usually as a result of sending numerous email notifications or running multiple webhooks. Select Finish saving record to see how many emails were sent or webhooks were run.
Notifications
Most of the time, if saving a record takes a long time, it is because notifications are being sent to a long list of recipients.
To improve performance:
- Send notifications only to users who need them most
- Consider using email subscriptions or reminders for users who don't need to be informed immediately about a changed record. Subscriptions and reminders are sent on a schedule, so they do not affect the amount of time it takes to save a record.
Note: There may be fewer notifications listed to the left than are configured for this action if some notifications are disabled or have identical names and owners.
Build email message
If you include a copy of a record in the body of an email, Quickbase generates a separate message for each recipient because each recipient may have different field-level permissions or values in formula fields.
To improve performance:
-
do not include the record itself in the email, as shown in the default message for a multi-record operation, like import and grid edit
-
send an open notification - only one email is generated and sent to all recipients
Generate changed field list
The performance analyzer tells you how many users the changed field list was evaluated against.
For each recipient of a notification, Quickbase checks the permissions for all the fields that were changed to determine whether the recipient is allowed to see the changed values. If a recipient is not permitted to see any of the fields that were changed, they will not receive the notification.
You can see how many messages were actually sent by selecting Build email message.
Grid edit
Grid edit saves multiple records at one time. It checks permissions and makes sure required and unique fields are present and unique, but it does not execute any form rules.
Grid edit generates one email message for each configured notification, no matter how many records were added or modified.
Check for data entry errors
Most data entry errors are caught before the form is submitted, but unique fields and some form rules are evaluated when the record is saved.
If this check is taking a long time, it may be because there are unique fields on the form and many records in the table that must be evaluated to ensure that the value is unique.
Other techniques
You also can optimize Quickbase performance by using one of the recommended browsers.