Dynamic business rules (used in merchandising and content spotlighting) require very little data processing or indexing, so they do not impact the Dgraph memory footprint.
However, because the MDEX Engine evaluates dynamic business rules at query time, the larger the number of rules, the longer the evaluation and response time.
To improve query response-time performance of the Dgraph with dynamic business rules:
Monitor and limit the number of rules that are evaluated for each request. Each rule that is evaluated for a request impacts the response time for that request.
To do this, specify the number of records returned in the Maximum Records text box of the Styles editor in Developer Studio. Setting the Maximum Records value prevents business rules from returning an entire set of matching records, potentially overloading the network, memory, and page size limits for a request. If the Maximum Records value is set to a large number, such as 1,000, then as many as 1,000 promoted records could be returned with each navigation request, causing significant performance degradation.
Use
Nmrf
to specify the syntax for the rule filter. Rule filters restricts which rules can promote records for a navigation query. TheNmrf
query parameter controls the use of a rule filter.Nmrf
has a corresponding ENEQuery method and parameter.Configure triggers for all business rules. Business rules without triggers are evaluated for every navigation query and negatively affect performance.
Review how rule sorting is used. Rule sorting allows you to sort the rule’s promoted records by a specified property or dimension value. Per-rule sorts can increase the performance cost of dynamic business rules.