Overview
Versions
Report Server Version | Plug-In Version of Built-In Template Detection Assistant | Function Changes |
V11.0 | V1.0.0 | / |
V11.0.2 | V1.1.0 | 1. Closure of specific detection items of template detection assistant 2. New Function Suggestion Tab on the result page of the template detection assistant 3. Style optimization of the result page of template detection assistant 4. Automatic optimization for closing single template |
Scenarios
Due to the different development capabilities of template developers, most performance problems are caused by poor operation in the development process, and users are often not willing to edit the developed template. Template detection assistant guides you during template creation to reduce performance problems of new templates.
Functions
FineReport 11.0 has the built-in Template Assistant plugin. You can click Template Detection Assistant to check the performance of a template, find possible performance issues, and modify them according to suggestions.
Procedure
Triggering Detection
1. Triggering Manually
Open a template and click Template Detection Assistant to detect the template. If you do not save the template, the template saving reminder is triggered.
2. Detecting Through Saving
Open an undetected template. After you modify and save it, the template is automatically detected.
3. Detecting Through Preview
Open an undetected template. When you preview the template (you can preview it in various ways), the template is automatically detected.
After preview, close it and open it again. Detection Error Tip (section "The Button of Detection Error Tip") will appear.
4. Additional Instructions
During detection, if you perform actions (such as closing the designer or switching the working directory), the detection is aborted. You can trigger detection again when previewing or saving normally next time.
If you do not save the template before clicking Template Detection Assistant, a template saving notification is triggered.
Detecting through preview: When the detection is not completed, the second detection will not be triggered if you preview again. If you click Save, the unfinished detection is aborted and the new detection starts.
The Button of Detection Error Tip
1. Introduction
After you detect the template, Detection Error Tip appears, as shown in the figure below:
2. Additional Instructions
After you trigger the detection, the result interface of detection appears in the form of pop-ups. After detection through saving or previewing, click Detection Error Tip to view the result.
If you optimize the detected performance issues, the number of detected issues changes according to the fact.
After the detection result is generated, Detection Error Tip still exists when you open the template next time.
The Page of Detection Error Tip
If a performance problem is detected, Suggestions, Auto Optimize, and Function Suggestions are displayed individually or in combination based on the actual template conditions.
Suggestions: The template is not optimized automatically. You need to modify it by yourself according to the tip.
Auto Optimize: Shows the parts that the system has optimized automatically.
Function Suggestions: Recommends functions that can optimize the performance of the template to users according to the template.
1. No Performance Problem
If no performance problem is detected temporarily, the result interface of detection is as shown below:
2. The Page of Suggestions
3. The Page of Automatic Optimization
4. Function Suggestions
5. Detection Failure
When the detection fails, an error popup prompt appears: Fail to detect. Please view error log.
Whether to Optimize Automatically
The following table shows whether to automatically optimize the template:
Question Number | Description | Suggestions | Whether to Optimize Automatically |
01001 | There are redundant data colums in the dataset, and it is detected that only chuchaicishu, user_username data colunns are actually used. | It is suggested to modify SQL to decrease the fetched data columns and only preserve those will be used. | No |
02001 | The cell has redundant conditional formatting, and the calculation of the relevant conditional formatting has been repeated in its parent cell. | It is suggested to delete the conditional formatting calculation in the cell that is consistent with the parent cell. | Yes |
02002 | The cell has redundant filters and the related filter calculation has been repeated in its parent cell. | It is suggested to delete the filter conditions in the cell which are consistent with the parent cell. | No |
02003 | The hidden rows and columns contain some meaningless conditional formatting calculations. | It is suggested to delete conditional formatting other than row height, column width and pagination in hidden rows and columns. | Yes |
03001 | There are calculation risks in the cell since the divisor might be 0. | It is suggested to perform a null value judgment on the division calculation, e.g. =IF(B1=0, Ifinity, A1 / B1). | No |
04001 | There are many columns of data in this row, and it is easy to have a deep relationship between parent and child, which affects computing performance. | It is suggested to set the parent cell of all data columns except the first one as the first data column, in order to reduce the recursion depth when calculating parent-child cell relationships. | Yes |
05001 | There is filtering in the cells of the data column, which will be handed over to the memory for processing. When the result data of the dataset are large, the performance will be slow. | It is suggested to remove the filter in the data column cell and write the filter condition into the dataset for filtering. | No |
06001 | There are SQL-type functions (sql, value, map, select) that can be expanded in cells, which may cause poor performance due to duplicate calculations. | SQL-type functions will additionally perform independent calculation or execute SQL after each expansion, which may lead to repeated fetching or repeated calculation. SQL-type functions will additionally perform independent calculation or execute SQL after each expansion, which may lead to repeated fetching or repeated calculation. It is suggested to check whether the current cell needs expanded calculation (the calculation content of each row is different). If the answer is no, the function can be placed in a non-expanded cell, and a formula will reference the result of this cell for expansion. | No |
06002 | Cells have extended hierarchical coordinate functions, which may lead to poor computational performance. | The calculation performance of hierarchical coordinates is poor. After expansion, the calculation of multiple hierarchical coordinates may further reduce the report preview performance. It is suggested to confirm the usage scenarios of hierarchical coordinates, reduce the extended use of hierarchical coordinates, and replace other methods to implement requirements. It is suggested to confirm the usage scenarios of hierarchical coordinates, reduce the extended use of hierarchical coordinates, and replace other methods to implement requirements. | No |
06003 | Detail data templates with large data volume use group instead of list. | It is suggested to modify the leftmost parent cell of the row to list. | No |
06004 | Detail data templates with large data volume use group instead of list. | It is suggested to modify the leftmost parent cell of the row to list. | Yes |
06005 | IF function may have double calculation. | It is suggested to use NVL formulas, e.g. change IF(SQL(...) = null, aaa, SQL(...)) to NVL(SQL(...), aaa). | No |
07001 | The amount of data in the dataset is too large, which may take up a lot of memory and cause slow template preview. | It is suggested to limit the parameters used in widgets during query to avoid querying all data although it is unnecessary, since this will affect preview performance and cause server pressure. | No |
08001 | Widget default value calculation time is too long, and this may lead to slow template preview. | The SQL function of the default value of the widget executes too slowly. It is suggested not to use the SQL function for the default value of the widget, but to use the "value" function or fixed value instead. The SQL function of the default value of the widget executes too slowly. It is suggested not to use the SQL function for the default value of the widget, but to use the "value" function or fixed value instead. | No |
09001 | There are too many template components currently, which may lead to slower template loading performance due to the browser's request concurrency limit. | Recommended merge template components to achieve the same effect with as few components as possible. | No |
30004 | The template background image is too large, which may lead to slower template loading performance. | Recommended use External Background UI plugin (Click to get and use the plug-in link to jump) | No |
Closing Automatic Optimization of Template
1. Closing Automatic Optimization of All Templates
If you do not want to automatically optimize the template, you need to log in to the platform as an administrator, click Manage > System > General, and close Template Auto Optimize.
2. Automatic Optimization of the Single Template Closing
On the error prompt page of the template detection, tick Do not use auto optimize to close the automatic optimization of the template.
Closing Detection
If you do not want the template assistant to detect or optimize performance, you can use FINE_CONF_ENTITY Visual Configuration plugin and add a field.
Field name | Field value |
forbiddenRule | Refer to section 2.4 of this article for the list of detection items disabled based on table content. The field value is the 'problem number' in the table, such as '01001, 02001' (separated by English commas). |
Automatic Simplification of Report Block
When designing dashboard, you may need to add a lot of components and create many small report blocks for certain styles, resulting in a sharp increase in the number of report blocks.
Whether it is calculated in the backend or rendered in the frontend, the cost of report blocks is relatively high and it can affect preview performance. To solve this problem, Automatic simplification of report blocks is launched.
This feature can be enabled under System > General > Automatic simplification of report blocks in the decision-making platform. After enabling, simple report blocks will be automatically converted into label and image widget, improving front-end rendering performance, but there may be slight changes in style.
Note: You should enable template auto-optimization at the same time, and it takes effect after you resave the template.