Performance Reviewer

Overview

The Performance Reviewer helps identify site customizations that could contribute to performance issues. When an administrator generates a report, the Performance Reviewer tool reports common performance-impacting issues in BML scripts, data tables, and pricing settings. Administrators can then review the report and address applicable issues to improve their performance.

When an administrator navigates to Admin > Developer Tools > Performance Reviewer a list of reports is displayed. They can click Generate to start a new report or click on a report to view the report details.

Performance Reviewer Logs

The report displays the issue location and gives a brief description of the issue. The administrator can click on the location quick link to quickly navigate to the source of the issue.

Performance Reviewer Reports

The following table lists known issues that are checked by the Performance Reviewer tool.

Location

Issue Checked

BML

Nested For Loops in BML can cause performance issues if the for loop iterates for a large number of iterations.

BML

URLData requests inside for loops can cause performance issues, since it would invoke multiple External requests within a loop, it is recommended to use bulk APIs wherever possible .

BML

Limit the use of sub-document dynamic menu attributes to prevent negative impacts on performance.

And if this is still being used, avoid use of Formula to populate the value as this will be firing for each transaction line and can cause significant slowness for large quotes with large number of transaction lines.

Filters should be uses on dynamic menu attributes for better performance.

BML

BMQL requests inside for loop should be avoided, better to create a single query that retrieves all the relevant data and run it once outside loop

BML

SOAP V1 Calls should be avoided, as they need login and logout calls , which can cause performance degradation. Instead use SOAP V2 .

BML

URLData calls to the same site (Self URLData calls) should be avoided. Instead use library invocation wherever possible.

BML

Avoid using commerce.transaction in BMQL in Configuration Rules.

BML

Avoid using commerce.transactionLine in BMQL in Configuration Rules

BML

Importing a main document Commerce Library Function which imports sub-doc attributes into a BML script on the sub-doc level, causes performance issues.

Data Tables

Data Tables with more than 10000 rows should also have at least one column that is indexed, and querying on the data table should be on that indexed column. Otherwise querying on the data table will be slow.

Settings

It is recommended to enable "Incremental Pricing" , if the pricing for one quote line doesn't depend on another quote line, this should help improve performance for line level actions and updates.

Related Topics

Related Topics Link IconSee Also