Potential performance losses due to multi-pass processing

Klicke hier für den deutschen Artikel.

Background

If certain functions and settings are used in the Designer for a layout, List & Label cannot generate the reports in a single pass. In these cases, a multi-pass process is used. This involves first executing virtual, non-output passes (usually just one additional pass) before a visible output pass takes place. This can, for example, result in repeated queries to the data source, such as SQL queries. This can significantly affect print time, particularly with complex queries or a slow network connection to the database server. Below is an overview of possible triggers for the multi-pass process.

Project property “Multi-pass processing: number of passes”

The project property Multi-pass processing: number of passes specifies the number of virtual, non-output passes. These passes may be required, for example, for preliminary calculations. If multiple passes are used, the project property Multi-pass: Output Condition is also available.

Automatic column width adjustment in tables

For table columns, the column width can be automatically adjusted to fit the content using the formula Null(). Since the final width depends on the actual content, the required widths of all columns and their contents must be determined for all records before the table is displayed.

Table property “Keep data together”

The table property Keep data together is located in the table/Data lines properties section. Since the distribution of the table output across multiple pages also depends on the amount of data itself, at least one additional pass is required.

Designer function “Precalc()”

The designer function Precalc() is an aggregate function. It is used, for example, to display totals directly in the table header. This also requires precalculation and, therefore, a prior run.

Impact on print time

Multi-pass processing means that data is processed multiple times. This results in additional data accesses. The impact on print time depends on the data volume, data source, query complexity, and report layout.

Important: The options mentioned above can accumulate and thus lead, for example, to a print time that is three times longer or more.

Summary

Normally, no action is required, as the performance impact is negligible. However, if you want to optimize print time, disabling these features can reduce print time and thus improve performance, provided that the corresponding functions are not absolutely necessary. The settings mentioned above can be identified and adjusted using the Designer.

Additional optimization options

Speed optimization
Notes on using multiple threads (multithreading)