Gainsight has powerful tools for viewing and analyzing your data. Those include our Report Builder, Data Designer, and Dashboards. If you are running complex reports on a large dataset, you may want to optimize the performance of your reports and dashboards with some of the tips below.
Reports
Avoid the “Contains”, “Starts With”, and “Ends With” filters
- The “Contains” filter is a very intensive search operation and can be very slow to return. Instead, we recommend using an Equals filter whenever possible. “Starts With” and “Ends With” will also result in a slower search than Equals.
Avoid overly complex Advanced Logic
- We allow for complex formulas to be built in the Advanced Logic section of reports. If you are trying to perform complex logic on a large dataset, you can see slowness. We recommend finding ways to simplify the logic so the report can return quicker.
- For example:
Instead of having three filters for Region = One, Region = Two, Region = Three
With Advanced Logic of (A OR B OR C)
You could use one filter for Region IN (One, Two, Three)
Which would result in the Advanced Logic being (A)
Avoid filters on looked up fields
- Reports allow you to look up from one object to another. For example from Company to User to return the CSM name for a particular client. When you filter on the lookup up object, it will take longer to return than filtering on the original object. So in that example, you might be able to filter on the CSM GSID field on the Company object rather than the CSM GSID -> Name in the User object.
Limit the number of fields in the Show Me section
- The more data that needs to be returned, the longer a report will take to return. Only include those fields that need to be included in the report.
Enable Data Caching
- In General Settings for Reports you can enable this setting. This will improve the speed of a report when someone re-opens the same report multiple times in the same day.
Use Group By with date filtering
- If you are going to filter by a date, you can add the date field to the Group By section to optimize the query.
Minimize Ranking and Sorting Picklist Fields
- Applying ranking and sorting on picklist (both single and multi-select) fields can slow down a query.
Data Designer
Use Data Designer to create a smaller portion of a large object
- If you have an object with a large number of columns and/or rows, you can use Data Designer to create a Dataspace that is a subset of that object. You can then use that Dataspace in reporting. The Dataspace would contain only those fields you know you will want to report on, as well as the subset of rows that you plan to report on. For example only the rows pertaining to active clients, or only the rows created in the past six months. You can configure the Dataspace to refresh at regular intervals to stay updated.
Use Data Designer to apply filters, lookups, pivots, or formulas
- If you have a report that is running slowly due to a large amount of filters, lookups, pivots, or formulas, you can re-create the report as a Dataspace using Data Designer. You can configure the Dataspace to refresh at regular intervals. Then you can use that Dataspace instead of the object itself in reports. Because all of those actions (filters, lookups, pivots, formulas) aren’t being performed each time the Dataspace is used in a report, it will run faster.
Dashboards
Avoid including reports with different objects
- The fastest dashboards will include reports on the same object. If you need to use dashboards reporting on different objects, you can use Data Designer to create a data source to use with multiple objects.
Enable lazy loading
- This setting can be turned on by a Gainsight admin in the General Settings of the Dashboard Builder. This loads only the visible widgets so that the dashboard page initially loads quicker.
Global Filters
- Admins can set Global Filters so that those filters are applied when an end user loads the report. If this reduces the amount of data that is returned, it will make the dashboards load faster.
Home
Enable lazy loading
- In the General Settings you can enable lazy loading which will only load a widget as the user scrolls to view it. This will make the page load faster.
Do you know any additional tips I didn’t mention? Please share them in the comments!