Rule Efficiency

If you notice a drop in performance as your database grows in record volume and complexity, you may consider trimming and honing existing rules. Follow these best practices for writing efficient rules:

Best Practices
  • Avoid OR statements: opt for multiple, simple rules.
  • Write rules in the affirmative: avoid using NOT statements whenever possible.
  • Avoid filters that must perform a character search. For example, School In List, Last Name Contains.
  • Instead of filtering on School In List (CEEB), try the more efficient geomarket.
  • Avoid filtering on Source FormatMailing Sent, or Ping Data. The tables for Source Format, Mailing, and Ping will grow almost exponentially over the life of your database, and filters searching across those tables will see a marked decrease in performance over time.
  • Prevent unnecessary records from being evaluated by your rules whenever possible by incorporating Do Nothing rules into Exclusivity Groups. If the "Do Nothing" criteria would require many OR statements to define, this might be replaced by a set of streamlined Do Nothing rules preceding the rest of the action rules in this group. 
  • Do not daisy chain rules.
Get a Sense for a Rule's Speed

Use the below method to explore changes to rules you've been considering quickly, and get a good sense of whether those changes would result in a faster rule that can consistently beat timeout.

  1. Within a rule, select New Query from the right navigation.
  2. Select Check Logic from the right navigation.
  3. In the Search Records... field, enter the name of a test record and select it.
  4. Observe how long it takes for the filters to run. This duration would be the amount of time it takes for the Matching Rows count preview to render in a query. Click Close.
  5. Adjust the filters in accordance with the best practices described above.
  6. Repeat this process and observe whether the rule executes any more efficiently than before.
Was this article helpful?
1 out of 1 found this helpful