There are multiple factors that can impact DESelect performance and determine how long it takes to run a query using DESelect Segment.
The first thing to note is that when DESelect Segment needs to retrieve or query information from your environment, we use the Salesforce Marketing Cloud API to run it, so DESelect performance almost entirely depends on the response time of this service.
The features affected by the running time of Salesforce Marketing Cloud API, are:
- Retrieving Data Extensions
- Retrieving values when creating picklists
- Copying a Selection or Selection template
- Preview or run a Selection
Clicking on Preview or Run on DESelect Segment is equivalent to creating a query activity in Automation Studio, running that query activity, and retrieving the result. In this case, apart from the mentioned impact on the SFMC API response time, it can also be affected by SQL performance itself.
The SQL performance on SFMC depends on how the query itself is created and the amount of data it has to go through, but we can state that it relies on:
- The volume of data being processed (take into account that SFMC generally recommends a limit of 30M rows/10+ columns)
- The number of joins, their types, and the matching column type (text is less optimized than integers, for example)
- The types of filters used, eg. Contains filters are less efficient than Equals filters
- Existence of Primary Keys
- The status of the Cloud itself can impact how fast SFMC attends to the request
- Ongoing activities on your Salesforce Marketing Cloud stack. If the stack has to process many SQL activities at the same time, there may be a longer waiting time before the query is picked up.
Please note that all the factors above are outside of DESelect's control. If you run into a performance issue, please review if you are aligned with the SFMC Best Practices:
- JOIN Data Extensions using their Primary Keys when possible.
- In the Target Data Extension definition step, only add the fields you are going to need.
- When defining the field type of the columns, take into account the information they are going to store. For example, if you always store a two-digit state code, limit the column length to two characters rather than the default of 50 characters.
- Don't store numbers as text unless you plan to join them to system tables.
- Adding the length of all the columns in your Data Extension, it shouldn't get over 8.000 characters.
If you keep running into Time Outs after you review the previous points, Salesforce's recommendation is to split the query into multiple steps. You can easily achieve this using Waterfall Selection inside DESelect Segment, by creating chained Selections that store the information in intermediate tables along the process.
DESelect Segment loading time performance
If your performance issues are related to the loading time of the screens (Overview of Selections, opening a Selection, accessing the Admin Panel, ...) please reach us with a support ticket so we can review it.